Nice programing

enum-문자열 변환시 enum 값 얻기

nicepro 2020. 11. 14. 11:04
반응형

enum-문자열 변환시 enum 값 얻기


다음 열거 형을 정의했습니다.

from enum import Enum


class D(Enum):
    x = 1
    y = 2


print(D.x)

이제 인쇄 된 값은

D.x

대신 enum의 값이 인쇄되기를 원했습니다.

1

이 기능을 달성하기 위해 할 수 있습니까?


열거 형 개체를 인쇄하고 있습니다. .value인쇄하려는 경우 속성을 사용하십시오 .

print(D.x.value)

열거 형 멤버 및 해당 속성에 대한 프로그래밍 방식 액세스 섹션 참조하세요 .

열거 형 멤버가 있고 해당 이름 또는 값이 필요한 경우 :

>>>
>>> member = Color.red
>>> member.name
'red'
>>> member.value
1

__str__원하는 것은 사용자 지정 문자열 표현을 제공하는 것뿐이라면 열거 형에 메서드를 추가 할 수 있습니다 .

class D(Enum):
    def __str__(self):
        return str(self.value)

    x = 1
    y = 2

데모:

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

다음을 사용하여 액세스를 구현했습니다.

class D(Enum):
    x = 1
    y = 2

    def __str__(self):
        return '%s' % self.value

이제 난 그냥 할 수있어

print(D.x)1결과 를 얻으려면 .

대신 self.name인쇄하려는 경우 에도 사용할 수 있습니다 .x1

참고URL : https://stackoverflow.com/questions/24487405/enum-getting-value-of-enum-on-string-conversion

반응형