假设我有以下继承关系。检索python中的继承关系信息
object->Car->SUV
object
是Car
和Car
父亲是SUV
的父亲。
如何使用Python程序来获得这种关系的信息,如使用dir
得到一个类的属性
假设我有以下继承关系。检索python中的继承关系信息
object->Car->SUV
object
是Car
和Car
父亲是SUV
的父亲。
如何使用Python程序来获得这种关系的信息,如使用dir
得到一个类的属性
使用__bases__
:
In [11]: SUV.__bases__
Out[11]: (<class '__main__.Car'>,)
In [12]: Car.__bases__
Out[12]: (<type 'object'>,)
如果目的是调用从父方法一个孩子的方法,用super()
代替。
除提供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__
。