열거형은 고유한 상수 값에 바인딩된 기호 이름(구성원) 집합인 열거형을 만들기 위한 파이썬의 클래스입니다. 열거형의 멤버는 이러한 상징적 의미로 비교할 수 있으며 열거형 자체를 반복할 수 있습니다. 열거형의 특징은 다음과 같습니다.
-
열거형은 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