Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬의 열거형

<시간/>

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

  • 열거형은 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