Python의 열거 형
이 튜토리얼에서는 Python에서enum
을 사용하거나 구현하는 다양한 방법을 살펴 봅니다. enum
또는 열거는 숫자 유형의 명명 된 상수 세트를 나타내는 특수 유형의 클래스입니다. enum
유형의 각 명명 된 상수에는 세트의 명명 된 상수 위치에 따라 달라지는 자체 정수 값이 있습니다.
enum
유형은 C#, Java, Go, C 및 C++ 등과 같은 많은 프로그래밍 언어에서 정수 값 세트에 상수 이름을 할당하는 데 사용됩니다. 다음 메소드를 사용하여 Python에서 열거 유형을 구현하고 사용할 수 있습니다. 아래에 설명되어 있습니다.
enum
모듈을 사용하는 Python의 열거 형
Python의enum
모듈에는Enum
,IntEnum
,Flag
,IntFlag
의 네 가지 클래스가 있습니다. 모듈과 클래스에 대한 자세한 내용은이 링크를 참조하세요.
Enum
클래스에서 각 이름 상수의 값은 기본적으로 정수이지만 string 또는 float 등과 같은 데이터 유형을 전달할 수도 있습니다. 이름에서 알 수 있듯이IntEnum
클래스의 이름 상수 값은 다음을 수행 할 수 있습니다. 정수만 가능합니다.
Enum
및IntEnum
클래스를 사용하여 Python에서 열거 형을 만들고 사용할 수 있습니다. 아래 예제 코드는 이러한 클래스를 사용하여 Python에서 다양한 유형의 열거자를 구현하는 방법을 보여줍니다.
단순 열거 자 :
from enum import Enum
Names = Enum("Names", ["Waiz", "Tom", "Sara", "Lee"])
(name, value)
쌍의 반복자를 사용하여 이름 상수의 ID 또는 마크 등을 나타내는 각 이름과 함께 특정 값을 저장할 수 있습니다. 값에 액세스하려면Enum.nameconstant.value
를 사용하고 이름에 액세스하려면Enum.nameconstant.name
을 사용하여 이름 상수 값과 이름에 액세스 할 수 있습니다.
아래 예제 코드를 사용하여 Python에서 그렇게 할 수 있습니다.
from enum import Enum
Names = Enum("Names", [("Waiz", 8), ("Tom", 5), ("Sara", 7), ("Lee", 6)])
print(Names.Sara.value)
print(Names.Waiz.name)
출력:
7
Waiz
열거자를 만드는 또 다른 방법은 클래스 구문을 사용한 다음 아래 예제 코드와 같이Enum
또는IntEnum
을 전달하는 것입니다.
from enum import IntEnum
class Student(IntEnum):
Waiz = 1
Ali = 2
John = 3
Lee = 4
print(Student.Lee.value)
출력:
4
정규 클래스 구문을 사용하여 Python에서 Enum 구현
2.4 이전의 Python 버전에서는Enum
모듈을 사용할 수 없습니다.이 경우 클래스 구문을 사용하여 열거 자Enum
의 자체class
를 구현할 수 있습니다.
아래 예제 코드에 설명 된대로enum
모듈의Enum
클래스 에서처럼1
에서 시작하는 기본값을 사용하여 간단한 열거 자 클래스를 구현할 수 있습니다.
class Zoo:
Lion, Tiger, Cheetah, Leopard = range(1, 5)
print Zoo.Lion
출력:
1