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
'프로그래밍언어 > 파이썬[중급]' 카테고리의 다른 글
[파이썬][중급] Chapter49. contextlib로 with문 확장하기 (0) | 2025.05.25 |
---|---|
[파이썬][중급] Chapter48. typing 모듈로 타입 지정 고도화 (0) | 2025.05.25 |
[파이썬][중급] Chapter46. 데이터 클래스와 필드 설정 (dataclasses) (0) | 2025.05.25 |
[파이썬][중급] Chapter45. CSV 파일과 pandas의 통합 활용 (0) | 2025.05.24 |
[파이썬][중급] Chapter44. JSON과 pickle의 차이점 (0) | 2025.05.24 |