列出给定类的层次结构中的所有基类?
给定一个Foo
类(不pipe它是否是新式类),如何生成所有的基类 – inheritance层次结构中的任何地方 – 它的issubclass
?
inspect.getmro(cls)
适用于新旧风格类,并返回与NewClass.mro()
相同的类:该类及其所有基类的列表。
>>> class A(object): >>> pass >>> >>> class B(A): >>> pass >>> >>> import inspect >>> inspect.getmro(B) (<class '__main__.B'>, <class '__main__.A'>, <type 'object'>)
请参阅python class
上的__bases__
属性 , class
包含一个基类的元组:
>>> def classlookup(cls): ... c = list(cls.__bases__) ... for base in c: ... c.extend(classlookup(base)) ... return c ... >>> class A: pass ... >>> class B(A): pass ... >>> class C(object, B): pass ... >>> classlookup(C) [<type 'object'>, <class __main__.B at 0x00AB7300>, <class __main__.A at 0x00A6D630>]
inspect.getclasstree()
将创build一个嵌套的类和它们的基础列表。 用法:
inspect.getclasstree(inspect.getmro(IOError)) # Insert your Class instead of IOError.
你可以使用类对象的__bases__
元组:
class A(object, B, C): def __init__(self): pass print A.__bases__
__bases__
返回的元组具有其所有的基类。
希望能帮助到你!