Dans une méthode d'instance d'une classe python, je sais que nous pouvons obtenir le nom de la classe via self.__class__.__name__
Enregistrer le nom de la classe dans la variable de la classe sans taper le nom de la classe?
Cependant, je voudrais enregistrer le nom d'une classe dans une variable de classe, sans coder le nom du classe.
Je sais que je peux le faire pour obtenir un nom de classe en une variable de classe:
class MyClass(object):
pass
MyClass._myname = MyClass.__name__
Cependant, je dois coder la chaîne MyClass
deux fois en dehors de la définition de la classe, tout simplement pour obtenir le nom de la classe dans une variable de classe. Dans ce cas, ce serait "MyClass"
, que je pourrais simplement le code comme suit:
class MyClass(object):
_myname = "MyClass"
Mais même cela est redondant, étant donné que je dois coder en dur "MyClass"
dans la classe MyClass
.
Ce que je voudrais est d'obtenir en quelque sorte le nom d'une classe dans une variable de classe sans codage nom de la classe, comme suit:
class MyClass(object):
_myname = ???? # where ???? is a statement which returns the class
# name, in which the string "MyClass" does not appear
Est-ce même possible?
Eh bien, en fait, j'ai trop simplifié le problème. Ce que je veux vraiment, c'est que la variable de classe contienne des données qui dépendent du nom de la classe ... en d'autres termes, ce serait le résultat d'une fonction du nom de la classe. – HippoMan
PS: Une question peut-elle avoir deux réponses marquées? La réponse de Bickkngt et la réponse de Paul Panzer me donnent toutes les informations que je recherche. Je voudrais signaler vos deux réponses, si possible. – HippoMan
@HippoMan Vous pouvez changer les deux. Mais accepte, je suis sûr que tu ne peux en avoir qu'un seul. –