열거형은 고유하고 상수 값이 지정된 식별자(구성원) 집합입니다. 열거 내에서 구성원을 ID로 비교할 수 있습니다. 열거형 개체를 축소할 수도 있습니다.
enum 모듈은 다음 클래스를 정의합니다.
열거 :열거 상수를 생성하기 위한 기본 클래스입니다.
IntEnum :int의 하위 클래스이기도 한 열거 상수를 만들기 위한 기본 클래스입니다.
열거형은 클래스 구문을 사용하여 생성됩니다.
#enumexample.py from enum import Enum class langs(Enum): Python = 1 Java = 2 Cpp = 3 Ruby = 4
열거형 멤버에는 사람이 읽을 수 있는 문자열 표현과 재현 표현이 있습니다.
>>> from enumexample import langs >>> print (langs.Python) langs.Python >>> print (repr(langs.Python)) <langs.Python: 1>
각 열거형 멤버에는 이름 및 값 속성이 있습니다.
>>> x = langs.Python >>> x.name 'Python' >>> x.value 1
루프를 사용하여 모든 구성원을 반복할 수 있습니다.
>>> for lang in langs: print (lang.name, lang.value) Python 1 Java 2 Cpp 3 Ruby 4
회원은 가치 또는 정체성의 도움으로 액세스할 수 있습니다.
>>> langs(3) <langs.Cpp: 3> >>> langs['Java'] <langs.Java: 2>
아이덴티티 연산자 is 및 is not은 열거형의 멤버를 비교하는 데 사용할 수 없습니다.
>>> x = langs(2) >>> y = langs(4) >>> x is y False
동일한 이름을 가진 두 개의 열거형 멤버가 있는 것은 유효하지 않습니다. 그러나 두 개의 열거형 멤버는 동일한 값을 가질 수 있습니다. enumexample.py를 다음으로 변경:
from enum import Enum class langs(Enum): Python = 1 Java = 2 Cpp = 3 Ruby = 4 Cplusplus = 3 >>> from enumexample import langs >>> langs.Cpp <langs.Cpp: 3> >>> langs.Cplusplus <langs.Cpp: 3> >>> langs(3) <langs.Cpp: 3>
기본적으로 열거형은 동일한 값에 대한 별칭으로 여러 이름을 가질 수 있습니다. 고유한 값을 보장하려면 @enum.unique 열거를 위한 클래스 데코레이터를 사용하세요.