Why doesn't Python (error msg) tell me WHAT the actual (arg) values are ?
Michael Torrie
torriem at gmail.com
Thu Feb 23 22:32:26 EST 2023
On 2/23/23 01:08, Hen Hanna wrote:
> Python VM is seeing an "int" object (123) (and telling me that) ... so it should be easy to print that "int" object
> What does Python VM know ? and when does it know it ?
It knows there is an object and its name and type. It knows this from
the first moment you create the object and bind a name to it.
> it seems like it is being playful, teasing (or mean), and hiding the ball from me
Sorry you aren't understanding. Whenever you print() out an object,
python calls the object's __repr__() method to generate the string to
display. For built-in objects this is obviously trivial. But if you
were dealing an object of some arbitrary class, there may not be a
__repr__() method which would cause an exception, or if the __repr__()
method itself raised an exception, you'd lose the original error message
and the stack trace would be all messed up and of no value to you. Does
that make sense? Remember that Python is a very dynamic language and
what might be common sense for a built-in type makes no sense at all for
a custom type. Thus there's no consistent way for Python to print out
the information you think is so simple.
More information about the Python-list
mailing list