Comment puis-je obtenir l'objet parent (s) de la classe python?
Réponses
Trop de publicités?Utilisez l'attribut suivant:
cls.__bases__
De la docs :
Le tuple des classes de base d'un objet de classe.
Exemple:
>>> str.__bases__
(<type 'basestring'>,)
Un autre exemple:
>>> class A(object):
... pass
...
>>> class B(object):
... pass
...
>>> class C(A, B):
... pass
...
>>> C.__bases__
(<class '__main__.A'>, <class '__main__.B'>)
Si vous voulez toutes les ancêtres plutôt que de simplement l'immédiat, l'utilisation d'inspecter.getmro:
import inspect
print inspect.getmro(cls)
Utilement, cela vous donne tous ancêtre des classes dans la "méthode de résolution de commande" -- c'est à dire l'ordre dans lequel les ancêtres seront vérifiés lors de la résolution d'une méthode (ou, en fait, n'importe quel autre attribut -- méthodes et d'autres attributs de vivre dans le même espace de noms en Python, après tout;-).
Si vous voulez vous assurer qu'ils sont tous appelés, utilisez super
à tous les niveaux.