retrieve inheritance relationship information in python
Say I have the following inheritance relationship.
object-&开发者_运维技巧gt;Car->SUV
object is the father of Car and Car is the father of the SUV.
How can I use Python programs to get such relationship information,like use dir to get the attributes of a class
Use __bases__:
In [11]: SUV.__bases__
Out[11]: (<class '__main__.Car'>,)
In [12]: Car.__bases__
Out[12]: (<type 'object'>,)
If the purpose is to call the parent method from a child method, use super() instead.
In addition to __bases__ which aix mentioned, there is also __mro__ which will tell you all the classes you're inheriting from, back to object, and the order in which they will be searched for a given attribute.
class foo(object):
pass
class bar(foo):
pass
print bar.__mro__
>>> (<class '__main__.bar'>, <class '__main__.foo'>, <type 'object'>)
If you have an instance, rather than a class, you can do type(x).__mro__.
加载中,请稍侯......
精彩评论