2011-11-20 91 views
7

假设我有一个类X,我该如何检查基类/类,以及它们的基类/类等?如何检查Python的类层次结构?

我使用Eclipse中的PyDev,并提供Java例如,你可以在一个类的名字输入CTRL + T,看到了层次,如:

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

是否有可能为Python?

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

+2

这是在回答[Python中:列表层次结构中的所有基类] (http://stackoverflow.com/questions/1401661/python-list-all-base-classes-in-a-hierarchy) – kojiro

回答

8

点击f4,高亮显示类名以打开层次结构视图。

2

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

assert bool.__mro__ == (<class 'bool'>, <class 'int'>, <class 'object'>) 
assert True.__class__.__mro__ == (<class 'bool'>, <class 'int'>, <class 'object'>) 
+0

每个(新风格)类都有一个'mro'方法,所以你可以调用'bool .mro()'和'True .__ class __。mro()'(它返回列表而不是元组)。 – derenio