300 votes

obtenir le (s) parent (s) de la classe python

Comment puis-je obtenir l'objet parent (s) de la classe python?

339voto

Ayman Hourieh Points 39435

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'>)
 

139voto

Alex Martelli Points 330805

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;-).

20voto

DasIch Points 1595

Les nouvelles classes de style ont une méthode que vous pouvez appeler et qui retourne une liste de classes mères dans l'ordre de résolution de la méthode.

3voto

Mike Graham Points 22480

Si vous voulez vous assurer qu'ils sont tous appelés, utilisez super à tous les niveaux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X