说我有以下继承关系。
object->Car->SUV
object
是Car
的父亲,Car
是SUV
的父亲。
如何使用Python程序获取此类关系信息,例如使用dir
获取类的属性
答案 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__
。