Get parent class name?

oop, python

Solution

From the documentation: https://docs.python.org/2/reference/datamodel.html#the-standard-type-hierarchy

Class objects have a `__name__` attribute. It might cleaner to introspect the base class(es) through the `__bases__` attr of the derived class (if the code is to live in the derived class for example).

>>> class Base(object):
...     pass
...
>>> class Derived(Base):
...     def print_base(self):
...         for base in self.__class__.__bases__:
...             print base.__name__
...
>>> foo = Derived()
>>> foo.print_base()
Base

Problem

``` class A(object): def get_class(self): return self.__class__ class B(A): def __init__(self): A.__init__(self) b = B() print b.get_class() ``` This code will print `<class '__main__.B'>`. How can I get the class name where the method has been defined (namely `A`)?

Original source

Related problems