열거형은 고유한 상수 값에 바인딩된 기호 이름(구성원) 집합인 열거형을 만들기 위한 파이썬의 클래스입니다. 열거형의 멤버는 이러한 상징적 의미로 비교할 수 있으며 열거형 자체를 반복할 수 있습니다. 열거형의 특징은 다음과 같습니다.
-
열거형은 repr()이라고도 하는 개체의 평가 가능한 문자열 표현입니다.
-
열거형의 이름은 'name' 키워드를 사용하여 표시됩니다.
-
type()을 사용하여 열거형 유형을 확인할 수 있습니다.
예
import enum
# Using enum class create enumerations
class Days(enum.Enum):
Sun = 1
Mon = 2
Tue = 3
# print the enum member as a string
print ("The enum member as a string is : ",end="")
print (Days.Mon)
# print the enum member as a repr
print ("he enum member as a repr is : ",end="")
print (repr(Days.Sun))
# Check type of enum member
print ("The type of enum member is : ",end ="")
print (type(Days.Mon))
# print name of enum member
print ("The name of enum member is : ",end ="")
print (Days.Tue.name) 출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
The enum member as a string is : Days.Mon he enum member as a repr is : The type of enum member is : The name of enum member is : Tue
enum을 iterable로 인쇄
열거형을 반복 가능한 목록으로 인쇄할 수 있습니다. 아래 코드에서는 for 루프를 사용하여 모든 열거형 멤버를 인쇄합니다.
예
import enum
# Using enum class create enumerations
class Days(enum.Enum):
Sun = 1
Mon = 2
Tue = 3
# printing all enum members using loop
print ("The enum members are : ")
for weekday in (Days):
print(weekday) 출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
The enum members are : Days.Sun Days.Mon Days.Tue
열거 해싱
열거형의 멤버는 해시 가능하므로 사전 및 집합에서 사용할 수 있습니다. 아래 예에서 해싱이 작동하는 것을 보고 해싱이 성공했는지 확인합니다.
예
import enum
# Using enum class create enumerations
class Days(enum.Enum):
Sun = 1
Mon = 2
# Hashing to create a dictionary
Daytype = {}
Daytype[Days.Sun] = 'Sun God'
Daytype[Days.Mon] = 'Moon God'
# Checkign if the hashing is successful
print(Daytype =={Days.Sun:'Sun God',Days.Mon:'Moon God'}) 출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
True
열거형 액세스
멤버 항목의 이름이나 값을 사용하여 열거형 멤버에 액세스할 수 있습니다. 아래 예에서는 먼저 enu의 이름을 인덱스로 사용하는 이름으로 값에 액세스합니다.
예
import enum
# Using enum class create enumerations
class Days(enum.Enum):
Sun = 1
Mon = 2
print('enum member accessed by name: ')
print (Days['Mon'])
print('enum member accessed by Value: ')
print (Days(1)) 출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
enum member accessed by name: Days.Mon enum member accessed by Value: Days.Sun
열거형 비교
열거형을 비교하는 것은 간단한 과정이므로 비교 연산자를 사용합니다.
예
import enum
# Using enum class create enumerations
class Days(enum.Enum):
Sun = 1
Mon = 2
Tue = 1
if Days.Sun == Days.Tue:
print('Match')
if Days.Mon != Days.Tue:
print('No Match') 출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Match No Match