728x90
enum은 “Enumeration”의 약자로,
의미 있는 이름으로 정해진 고정값(상수)을 관리할 수 있게 해주는 내장 모듈입니다.
예를 들어,
프로젝트에서 상태를 “대기 / 진행 / 완료”로 다룬다고 할 때,
status = "WAITING" # 문자열 실수로 오타나면 바로 버그!
이전엔 이렇게 썻지만,
Enum을 사용하면,
from enum import Enum
class Status(Enum):
WAITING = 1
RUNNING = 2
DONE = 3
이제 문자열 실수도 없고, IDE에서 자동 완성까지 지원됩니다
전체 코드입니다
main.py
from enum import Enum, auto
# 기본 Enum 정의
class Status(Enum):
WAITING = 1
RUNNING = 2
DONE = 3
print("=== Status Enum 예제 ===")
print(Status.WAITING) # Status.WAITING
print(Status.RUNNING.value) # 2
print(Status.DONE.name) # 'DONE'
# auto()로 자동 번호 부여
class Emotion(Enum):
HAPPY = auto()
SAD = auto()
ANGRY = auto()
print("\n=== Emotion Enum 예제 ===")
for e in Emotion:
print(e.name, "=", e.value)
# 비교하기 (문자열/숫자 대신 Enum으로)
current = Status.WAITING
if current == Status.WAITING:
print("\n현재 상태: 대기 중 ")
elif current == Status.RUNNING:
print("현재 상태: 실행 중️")
else:
print("현재 상태: 완료")
# 실제 사용 예시 (상태 코드 관리)
class HttpStatus(Enum):
OK = 200
NOT_FOUND = 404
INTERNAL_ERROR = 500
print("\n=== HTTP Status 예제 ===")
for status in HttpStatus:
print(f"{status.name} -> {status.value}")
결과입니다.

'Python' 카테고리의 다른 글
| [Python] hasattr() 함수로 객체 속성 안전하게 확인하기 (0) | 2025.11.16 |
|---|---|
| [Python] Prefect 워크플로우 자동화 툴 (0) | 2025.11.13 |
| [Python] os.environ 으로 환경변수 관리하기 (0) | 2025.11.04 |
| [Python] pathlib 사용해서 파일과 폴더 다루기 (1) | 2025.10.28 |
| [Python] shutil 사용해서 파일 복사, 이동, 압축 하기 (0) | 2025.10.21 |