Getting the class name of an instance?
Have you tried the __name__
attribute of the class? ie type(x).__name__
will give you the name of the class, which I think is what you want.
>>> import itertools>>> x = itertools.count(0)>>> type(x).__name__'count'
If you're still using Python 2, note that the above method works with new-style classes only (in Python 3+ all classes are "new-style" classes). Your code might use some old-style classes. The following works for both:
x.__class__.__name__
Do you want the name of the class as a string?
instance.__class__.__name__
type()
?
>>> class A:... def whoami(self):... print(type(self).__name__)...>>>>>> class B(A):... pass...>>>>>>>>> o = B()>>> o.whoami()'B'>>>