class A:
def x (self):
print(self.__class__)
class B (A):
pass
b = B()
b.x()
Dans la situation ci-dessus, est-il un moyen de la méthode x
pour obtenir une référence à la classe A
au lieu de B
? Bien sûr écrire simplement print(A)
n'est pas autorisé, car je veux ajouter quelques fonctionnalités avec un décorateur qui a besoin de la classe A
(et comme je ne peux pas passer directement A au décorateur, car la classe n'existe pas encore à ce moment-là).Obtenir la classe actuelle méthode appel
Chaque fois que je voulais faire cela, j'ai fini par me rendre compte que j'avais foiré le design de la classe ou que je voulais juste un Mixin ... peut-être que votre problème est le même. –
Pourquoi avez-vous besoin de ça? peut-être que cela aurait dû être la question. –
Eh bien, je suis sûr que je n'aurais pas besoin de ça; Fondamentalement, je voulais un décorateur de méthode qui appelle automatiquement la méthode de la super classe. Cependant, pour utiliser la classe de base correcte dans le super appel, j'ai besoin d'une référence à l'objet * current *. Je l'ai résolu maintenant cependant en réutilisant une de mes approches précédentes (échouées) et l'ai fixée avec des idées de la réponse d'Alex. – poke