获得class级家长?

我如何获得Python类的父类?

使用以下属性:

cls.__bases__ 

从文档 :

类对象的基类的元组。

例:

 >>> str.__bases__ (<type 'basestring'>,) 

另一个例子:

 >>> class A(object): ... pass ... >>> class B(object): ... pass ... >>> class C(A, B): ... pass ... >>> C.__bases__ (<class '__main__.A'>, <class '__main__.B'>) 

如果你想要所有的祖先,而不是直接的祖先 ,使用inspect.getmro :

 import inspect print inspect.getmro(cls) 

有用的是,这给你所有的祖先类的方法的解决顺序 – 即parsing一个方法时(或者,实际上,任何其他属性 – 方法和其他属性居住在相同的命名空间在Python中,毕竟;-)。

新风格的类有一个可以调用的mro方法,它以方法parsing顺序返回一个父类的列表。

如果你想确保他们都被叫了,在各个层面使用super