본문 바로가기
프로그래밍언어/파이썬[중급]

[파이썬][중급] Chapter47. enum 클래스와 열거형 처리

by about_IT 2025. 5. 25.
728x90

열거형(enum)은 이름이 있는 상수 집합을 표현할 때 사용하는 자료형입니다. 파이썬의 enum 모듈은 명확한 상수 정의와 비교 기능을 제공하여, 코드의 가독성과 안정성을 높여줍니다.


● Enum 기본 사용법

from enum import Enum

class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3

print(Color.RED)        # Color.RED
print(Color.RED.name)   # RED
print(Color.RED.value)  # 1

Enum은 이름과 값을 함께 정의하며, .name, .value 속성을 사용할 수 있습니다.


● Enum 비교

if Color.RED == Color.RED:
    print("같음")

Enum 멤버는 싱글턴처럼 동작하므로 == 또는 is로 비교가 가능합니다.


● 반복 처리와 리스트 변환

for color in Color:
    print(color.name, color.value)

color_list = list(Color)
print(color_list)

Enum 클래스는 반복이 가능하며 리스트로도 쉽게 변환할 수 있습니다.


● 자동 값 지정 (auto)

from enum import auto

class Status(Enum):
    PENDING = auto()
    RUNNING = auto()
    DONE = auto()

auto()를 사용하면 자동으로 정수 값을 할당할 수 있습니다. 실제 값보다는 의미 중심의 코드를 작성할 때 유용합니다.


● 고정값 Enum과 이름 접근

status = Status["PENDING"]
print(status == Status.PENDING)  # True

문자열을 통해 Enum 값을 가져올 수도 있습니다. 역방향 탐색도 가능합니다: Status(1)


● 마무리

Enum은 코드 내에서 고정된 상수값을 명확히 정의하고 관리하는 데 효과적인 도구입니다. 특히 상태값, 옵션, 설정값 등을 처리할 때 enum을 사용하면 오류를 줄이고 코드의 의도를 명확히 표현할 수 있습니다.

728x90