获得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
。