我如何检查Python的类层次结构?

Ele*_*naT 8 python inheritance class pydev hierarchy

假设我有一个类X,我如何检查哪个是基类/类,以及它们的基类/类等?

我正在将Eclipse与PyDev一起使用,例如对于Java,您可以在类名称上键入CTRL + T并查看层次结构,如:

java.lang.Object
   java.lang.Number
       java.lang.Integer

Python有可能吗?

如果在Eclipse PyDev中不可能,我在哪里可以找到这些信息?

sou*_*eck 8

点击f4并突出显示类名以打开层次结构视图.


wks*_*rtz 5

此外,每个类都带有一个名为的属性,该属性__mro__给出了给定类可以从中继承方法或属性的所有父类。从左到右阅读它们。例如:

assert bool.__mro__ == (<class 'bool'>, <class 'int'>, <class 'object'>)
assert True.__class__.__mro__ == (<class 'bool'>, <class 'int'>, <class 'object'>)
Run Code Online (Sandbox Code Playgroud)

  • 此外,每个(新样式)类都有一个“mro”方法,因此您可以分别调用“bool.mro()”和“True.__class__.mro()”(它返回列表而不是元组)。 (2认同)