Si je code PythonPython réflexion super classe
class A():
pass
class B():
pass
class C(A, B):
pass
et je classe C
, est-il un moyen d'itérer à travers elle est super Classée (A
et B
)? Quelque chose comme pseudocode:
>>> magicGetSuperClasses(C)
(<type 'A'>, <type 'B'>)
Une solution semble être inspect module et 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?
L'adjectif correct est "Pythonic". – asmeurer
Voir aussi [Vérifier si A est une super-classe de B en Python] (/ q/1938755/1157100). –