假設我有以下繼承關係。檢索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__
。