Given a class Foo
(whether it is a new-style class or not), how do you generate all the base classes - anywhere in the inheritance hierarchy - it issubclass
of?
inspect.getmro(cls)
works for both new and old style classes and returns the same as NewClass.mro()
: a list of the class and all its ancestor classes, in the order used for method resolution.
>>> class A(object):
>>> pass
>>>
>>> class B(A):
>>> pass
>>>
>>> import inspect
>>> inspect.getmro(B)
(<class '__main__.B'>, <class '__main__.A'>, <type 'object'>)