2011-11-20 14 views
7

Suponiendo que tengo una clase X, ¿cómo puedo verificar cuál es la clase/clases base, y sus clases/clases base, etc.?¿Cómo inspecciono la jerarquía de clases de Python?

Estoy usando Eclipse con PyDev, y que Java, por ejemplo, podría escribir CTRL + T en un nombre de clase y ver la jerarquía, como:

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

¿Es posible para Python?

Si no es posible en Eclipse PyDev, ¿dónde puedo encontrar esta información?

+2

Esto se responde en [Python: Lista de todas las clases de base en una jerarquía] (http://stackoverflow.com/questions/1401661/python-list-all-base-classes-in-a-hierarchy) – kojiro

Respuesta

8

Pulse f4 con el nombre de clase resaltado para abrir la vista de jerarquía.

2

Además, cada clase lleva consigo un atributo llamado __mro__ que proporciona todas las clases principales de las que una clase determinada podría heredar métodos o atributos. Léelos de izquierda a derecha. Por ejemplo:

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

También cada clase (nuevo estilo) tiene un método 'mro', por lo que puede llamar a' bool .mro() 'y' True .__ class __. mro() 'respectivamente (devuelve list en lugar de tuple). – derenio

Cuestiones relacionadas