Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 열거형(Enum) 완벽 가이드: enum 모듈 사용법과 활용 예제

Python에서는 enum 모듈을 통해 열거형(Enumeration)을 지원합니다. 열거형은 각 멤버가 고유한 이름(name)값(value)을 가지며, 이름 또는 값을 사용해 멤버에 접근할 수 있습니다. 열거형을 활용하면 매직 넘버나 문자열 상수 대신 의미 있는 이름을 사용할 수 있어 코드의 가독성과 유지보수성이 크게 향상됩니다.

enum 모듈 임포트하기

열거형을 사용하려면 먼저 enum 모듈을 임포트해야 합니다.

import enum

열거형의 주요 특징

Python의 열거형은 다음과 같은 특징을 가집니다.

  • 멤버를 문자열(str) 또는 repr 형식으로 출력할 수 있습니다.
  • type() 메서드를 사용해 열거형의 타입을 확인할 수 있습니다.
  • name 속성으로 멤버의 이름을, value 속성으로 멤버의 값을 조회할 수 있습니다.
  • 열거형은 반복 가능(iterable)하므로 for 루프 등에서 순회할 수 있습니다.

예제 코드

아래 예제는 무지개의 일곱 가지 색상을 열거형으로 정의하고, 값과 이름으로 각각 접근하는 방법을 보여줍니다.

import enum
class Rainbow(enum.Enum):
   VIOLET = 1
   INDIGO = 2
   BLUE = 3
   GREEN = 4
   YELLOW = 5
   ORANGE = 6
   RED = 7
print('무지개의 세 번째 색상: ' + str(Rainbow(3)))
print('주황색(ORANGE)의 값: ' + str(Rainbow['ORANGE'].value))
my_rainbow_green = Rainbow.GREEN
print('선택한 색상 {} / 값 {}'.format(my_rainbow_green.name, my_rainbow_green.value))

실행 결과

무지개의 세 번째 색상: Rainbow.BLUE
주황색(ORANGE)의 값: 6
선택한 색상 GREEN / 값 4

예제 해설

Rainbow(3)처럼 괄호 안에 값을 전달하면 해당 값에 대응하는 멤버(BLUE)를 반환합니다. 반면 Rainbow['ORANGE']처럼 대괄호에 이름을 지정하면 이름으로 멤버에 접근할 수 있으며, 여기에 .value를 붙여 값 6을 얻습니다. 마지막으로 변수에 저장된 멤버에 대해 .name과 .value 속성을 사용하면 이름과 값을 동시에 확인할 수 있습니다.

열거형 순회하기

열거형은 반복 가능하므로 모든 멤버를 쉽게 순회할 수 있습니다.

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

이처럼 Python의 enum 모듈을 사용하면 상수 집합을 체계적으로 관리할 수 있으며, 오타나 잘못된 값 입력으로 인한 오류도 사전에 방지할 수 있습니다.