Vérifier si Une est la super-classe de B en Python
class p1(object): pass
class p2(p1): pass
Donc p2 est la sous-classe de p1. Est-il un moyen de savoir par programme que p1 est [une] la super-classe[es] de p2 ?
Vous devez vous connecter pour publier un commentaire.
Oui, il est moyen. Vous pouvez utiliser un issubclass fonction.
Comme suit:
issubclass(A, A)
évalue àTrue
. Cela peut ne pas être intuitive. Au moins pour moi, il semble évident qu'une classe est pas de son propre sous-classe.issubclass
devrait avoir été appeléistypeofclass
.set
, cela ne me dérange pas. A est un sous-ensemble de A.à l'aide de <class>.__bases__ semble être ce que vous cherchez...
issubclass
est certainement la meilleure solution.__bases__
ne vous donnera que les parents directs (ceux dans la parenthèse de la définition de la classe), tandis que issubclass vérifie l'ensemble de la chaîne de l'héritage.En fonction de ce que vous essayez de faire, le "mro" méthode peut également être utile.
Je pense que vous vouliez dire à l'utilisation de "classe" au lieu de "def".. 🙂 de toute façon, essayez de
p2.__bases__