Si j'ai un code Python
class A():
pass
class B():
pass
class C(A, B):
pass
et j'ai de la classe C
existe-t-il un moyen d'itérer à travers ses super classes ( A
y B
) ? Quelque chose comme un pseudo-code :
>>> magicGetSuperClasses(C)
(<type 'A'>, <type 'B'>)
Une solution semble être inspecter le module y getclasstree
fonction.
def magicGetSuperClasses(cls):
return [o[0] for o in inspect.getclasstree([cls]) if type(o[0]) == type]
mais est-ce une façon "pythonienne" d'atteindre l'objectif ?