如何检查Python的类层次结构?
假设我有一个叫做X的类,我该怎么查看它的父类是什么,以及它的父类的父类等等?
我在用Eclipse和PyDev,举个例子,在Java中,你可以按CTRL + T键查看一个类的层级结构,像这样:
java.lang.Object java.lang.Number java.lang.Integer
那在Python中也可以这样做吗?
如果在Eclipse PyDev里做不到,那我该去哪里找这些信息呢?
5 个回答
7
每个类都有一个叫做 __mro__
的属性,这个属性列出了这个类可以继承的所有父类的方法和属性。你可以从左到右阅读这些父类。比如:
assert bool.__mro__ == (<class 'bool'>, <class 'int'>, <class 'object'>)
assert True.__class__.__mro__ == (<class 'bool'>, <class 'int'>, <class 'object'>)
8
试试这个 inspect.getclasstree()。
8
当你选中类名后,按下F4键,就可以打开层级视图了。