2011-11-20 17 views
7

Supponendo che io abbia una classe X, come posso verificare quali sono le classi/classi di base e la loro classe/classi di base ecc?Come ispezionare la gerarchia di classi di Python?

Sto usando Eclipse con pydev, e per Java per esempio si potrebbe digitare CTRL + T su un nome di classe e vedere la gerarchia, come:

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

E 'possibile per Python?

Se non è possibile in Eclipse PyDev, dove posso trovare queste informazioni?

+2

Questa soluzione [Python: Lista tutte le classi di base in una gerarchia] (http://stackoverflow.com/questions/1401661/python-list-all-base-classes-in-a-hierarchy) – kojiro

risposta

8

Colpire f4 con il nome classe evidenziato per aprire la vista gerarchia.

2

Inoltre, ogni classe porta con sé un attributo chiamato __mro__ che fornisce tutte le classi parent da cui una determinata classe potrebbe ereditare metodi o attributi. Leggili da sinistra a destra. Per esempio:

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

Anche ogni classe (di nuovo stile) ha un metodo 'mro', quindi puoi chiamare' bool .mro() 'e' True .__ class __. mro() 'rispettivamente (restituisce lista invece di tupla). – derenio

Problemi correlati