在python中检索继承关系信息

时间:2011-10-14 06:21:34

标签: python inheritance

说我有以下继承关系。

object->Car->SUV

objectCar的父亲,CarSUV的父亲。

如何使用Python程序获取此类关系信息,例如使用dir获取类的属性

2 个答案:

答案 0 :(得分:2)

使用__bases__

In [11]: SUV.__bases__
Out[11]: (<class '__main__.Car'>,)

In [12]: Car.__bases__
Out[12]: (<type 'object'>,)

如果目的是从子方法调用父方法,请改用super()

答案 1 :(得分:2)

除了aix提到的__bases__之外,还有__mro__会告诉您所有您继承的课程,返回object ,以及搜索给定属性的顺序。

class foo(object):
   pass

class bar(foo):
   pass

print bar.__mro__
>>> (<class '__main__.bar'>, <class '__main__.foo'>, <type 'object'>)

如果你有一个实例而不是一个类,你可以type(x).__mro__