在python中检索继承关系信息
假设我有以下继承关系在python中检索继承关系信息,python,inheritance,Python,Inheritance,假设我有以下继承关系 object->Car->SUV object是Car的父亲,Car是SUV的父亲 我如何使用Python程序获取此类关系信息,例如使用dir获取类的属性 In [11]: SUV.__bases__ Out[11]: (<class '__main__.Car'>,) In [12]: Car.__bases__ Out[12]: (<type 'object'>,) [11]中的:SUV.\uu__ Out[11]:(,) [1
object->Car->SUV
object
是Car
的父亲,Car
是SUV
的父亲
我如何使用Python程序获取此类关系信息,例如使用
dir
获取类的属性
In [11]: SUV.__bases__
Out[11]: (<class '__main__.Car'>,)
In [12]: Car.__bases__
Out[12]: (<type 'object'>,)
[11]中的:SUV.\uu__
Out[11]:(,)
[12]中:汽车底座__
Out[12]:(,)
如果目的是从子方法调用父方法,请改用。使用
\uuuuuu基\uuu
:
In [11]: SUV.__bases__
Out[11]: (<class '__main__.Car'>,)
In [12]: Car.__bases__
Out[12]: (<type 'object'>,)
[11]中的:SUV.\uu__
Out[11]:(,)
[12]中:汽车底座__
Out[12]:(,)
如果目的是从子方法调用父方法,请改为使用。除了aix提到的
\uuuuu base\uuuuuu
之外,还有\uuuuu mro\uuuuu
将告诉您要继承的所有类、返回到对象的类,以及搜索给定属性的顺序
class foo(object):
pass
class bar(foo):
pass
print bar.__mro__
>>> (<class '__main__.bar'>, <class '__main__.foo'>, <type 'object'>)
类foo(对象):
通过
分类栏(foo):
通过
打印栏。\u\u mro__
>>> (, )
如果您有一个实例,而不是一个类,那么您可以执行type(x)。\uuumro\uuu
除了aix提到的\uuuu base\uuuu
之外,还有\uuumro\uuuu
将告诉您从中继承的所有类,返回到对象,以及搜索给定属性的顺序
class foo(object):
pass
class bar(foo):
pass
print bar.__mro__
>>> (<class '__main__.bar'>, <class '__main__.foo'>, <type 'object'>)
类foo(对象):
通过
分类栏(foo):
通过
打印栏。\u\u mro__
>>> (, )
如果您有一个实例,而不是一个类,那么您可以执行type(x)。\uuu mro\uuu