J'ai défini l'énumération suivante
from enum import Enum
class D(Enum):
x = 1
y = 2
print(D.x)
maintenant la valeur imprimée est
D.x
à la place, je voulais que la valeur de l'énum soit imprimée
1
Que peut-on faire pour réaliser cette fonctionnalité?
Vous imprimez l’objet enum . Utilisez le .value
attribut si vous vouliez simplement imprimer cela:
print(D.x.value)
Voir la section Accès programmatique aux membres de l'énumération et à leurs attributs ) :
Si vous avez un membre enum et avez besoin de son nom ou de sa valeur:
>>> >>> member = Color.red >>> member.name 'red' >>> member.value 1
Vous pouvez ajouter un __str__
méthode pour votre enum, si tout ce que vous vouliez était de fournir une représentation de chaîne personnalisée:
class D(Enum):
def __str__(self):
return str(self.value)
x = 1
y = 2
Démo:
>>> from enum import Enum
>>> class D(Enum):
... def __str__(self):
... return str(self.value)
... x = 1
... y = 2
...
>>> D.x
<D.x: 1>
>>> print(D.x)
1
J'ai implémenté l'accès en utilisant les éléments suivants
class D(Enum):
x = 1
y = 2
def __str__(self):
return '%s' % self.value
maintenant je peux juste faire
print(D.x)
pour obtenir 1
comme résultat.
Vous pouvez également utiliser self.name
Si vous souhaitez imprimer x
au lieu de 1
.