2015-06-24 74 views
1

如何在python中獲得給定類的所有超類的列表?獲取python中的所有超類3

我知道,在inspent模塊中有一個__subclasses__()方法來獲取所有的子類,但是我不知道有類似的獲取超類的方法。

你能幫我嗎?

回答

2

使用mro方法:

>>> class A(object): 
    pass 


>>> class B(object): 
    pass 


>>> class C(A, B): 
    pass 

>>> C.mro() 
[<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <type 'object'>] 
+0

感謝。這個方法和'__mro__'字段有什麼區別?如果我使用'__mro__',這會更好嗎? – VeLKerr

+1

@VeLKerr參見例如http://stackoverflow.com/q/19713585/3001761 – jonrsharpe

+0

謝謝。所以,最好使用'__mro__',因爲它已經有'mro()'的結果,它在類實例化時調用。所以,我不需要再次調用mro()。 – VeLKerr