Python의 열거 형

Muhammad Waiz Khan 2023년1월30일
  1. enum모듈을 사용하는 Python의 열거 형
  2. 정규 클래스 구문을 사용하여 Python에서 Enum 구현
Python의 열거 형

이 튜토리얼에서는 Python에서enum을 사용하거나 구현하는 다양한 방법을 살펴 봅니다. enum또는 열거는 숫자 유형의 명명 된 상수 세트를 나타내는 특수 유형의 클래스입니다. enum유형의 각 명명 된 상수에는 세트의 명명 된 상수 위치에 따라 달라지는 자체 정수 값이 있습니다.

enum유형은 C#, Java, Go, C 및 C++ 등과 같은 많은 프로그래밍 언어에서 정수 값 세트에 상수 이름을 할당하는 데 사용됩니다. 다음 메소드를 사용하여 Python에서 열거 유형을 구현하고 사용할 수 있습니다. 아래에 설명되어 있습니다.

enum모듈을 사용하는 Python의 열거 형

Python의enum 모듈에는Enum,IntEnum,Flag,IntFlag의 네 가지 클래스가 있습니다. 모듈과 클래스에 대한 자세한 내용은이 링크를 참조하세요.

Enum클래스에서 각 이름 상수의 값은 기본적으로 정수이지만 string 또는 float 등과 같은 데이터 유형을 전달할 수도 있습니다. 이름에서 알 수 있듯이IntEnum클래스의 이름 상수 값은 다음을 수행 할 수 있습니다. 정수만 가능합니다.

EnumIntEnum클래스를 사용하여 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