enum - getting value of enum on string conversion enum - getting value of enum on string conversion python python

enum - getting value of enum on string conversion


You are printing the enum object. Use the .value attribute if you wanted just to print that:

print(D.x.value)

See the Programmatic access to enumeration members and their attributes section:

If you have an enum member and need its name or value:

>>>>>> member = Color.red>>> member.name'red'>>> member.value1

You could add a __str__ method to your enum, if all you wanted was to provide a custom string representation:

class D(Enum):    def __str__(self):        return str(self.value)    x = 1    y = 2

Demo:

>>> 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


I implemented access using the following

class D(Enum):    x = 1    y = 2    def __str__(self):        return '%s' % self.value

now I can just do

print(D.x) to get 1 as result.

You can also use self.name in case you wanted to print x instead of 1.


The most straightforward dunder method to use is _repr_ instead of _str_ since it will also allow you to print it in that way also in lists.

class D(Enum):  x = 1  y = 2  def __repr__(self):      return self.valueprint([D.x,D.y])>>> [1, 2]