Randall Smith wrote:
Jive Dadson wrote:

The traceback routine prints out stuff like,

    NameError: global name 'foo' is not defined

NameError is a standard exception type.

What if I want to print out something like that?
I've determined that "global name 'foo' is not defined" comes from the __str__ member of the exception object.
Where does it find the string "NameError"? In general, if I have an object, is there a way to obtain the name of the type of the object?


Thankee.

type(object) ?

Doesn't work for old-style classes like exceptions:

py> e = NameError("global name 'foo' is not defined")
py> type(e)
<type 'instance'>
py> type(e).__name__
'instance'

For old-style classes, you'll need to go through __class__

py> e.__class__
<class exceptions.NameError at 0x00934900>
py> e.__class__.__name__
'NameError'

STeVe
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to