329 votes

Comment puis-je trouver toutes les sous-classes d’une classe donnée en Python ?

J’ai besoin d’une approche de travail d’obtenir toutes les classes qui sont héritées de la classe de base en Python.

495voto

unutbu Points 222216

Nouveau style classes ont une `` méthode qui retourne les sous-classes :

Voici les noms des sous-classes :

Voici les sous-classes eux-mêmes :

Confirmation que les sous-classes énumèrent en effet `` comme base :

Remarque Si vous voulez subsubclasses, vous devrez traiter récursivement :

77voto

fletom Points 899

Si vous voulez juste des sous-classes directes puis `` fonctionne très bien. Si vous voulez toutes les sous-classes, sous-classes des sous-classes, et ainsi de suite, vous aurez besoin d’une fonction de le faire pour vous.

Voici une fonction simple et lisible que récursivement détecte toutes les sous-classes d’une classe donnée :

2voto

martineau Points 21665

Ce n’est pas une bonne réponse donnée beaucoup mieux intégré dont @unutbu fait mention, mais j’ai le présenter comme un exercice. Le fonction définie restitue le dictionnaire créé qui mappe tous les noms de sous-classe pour les sous-classes eux-mêmes.

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