Python コードがある場合
class A():
pass
class B():
pass
class C(A, B):
pass
と私はクラスを持っていますC
、それを反復処理する方法はありA
ますB
か? 擬似コードのようなもの:
>>> magicGetSuperClasses(C)
(<type 'A'>, <type 'B'>)
1つの解決策は、モジュールと機能を検査することです。getclasstree
def magicGetSuperClasses(cls):
return [o[0] for o in inspect.getclasstree([cls]) if type(o[0]) == type]
しかし、これは目標を達成するための「Pythonian」の方法ですか?