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

파이썬 클래스에서 열거형(Enum)을 사용하는 방법 완벽 가이드

파이썬 열거형(enum)이란?

파이썬에서는 enum 모듈을 사용하여 열거형(Enumeration)을 정의할 수 있습니다. 열거형은 이름이 붙은 상수 값들의 집합으로, 코드의 가독성과 안정성을 높여주는 강력한 도구입니다. 예를 들어 요일, 방향, 자동차 브랜드처럼 고정된 선택지를 다룰 때 매우 유용합니다.

열거형은 일반적인 클래스와 마찬가지로 class 키워드를 사용해 정의하며, enum.Enum을 상속받아 만듭니다.

클래스에서 열거형 정의하기

다음은 Car라는 클래스에서 열거형을 정의하고 사용하는 기본 예제입니다.

import enum

class Car(enum.Enum):
    suzuki = 1
    hyundai = 2
    dezire = 3

print("모든 열거형 값:")
for c in Car:
    print(c)

실행 결과

suzuki
hyundai
dezire

for 반복문으로 열거형 클래스를 순회하면 각 멤버가 정의된 순서대로 출력됩니다. 이처럼 열거형은 반복 가능(iterable) 객체이기 때문에 루프 처리가 간편합니다.

열거형 멤버에 접근하는 방법

열거형 멤버는 이름 또는 값으로 접근할 수 있습니다.

# 이름으로 접근
print(Car.suzuki)        # Car.suzuki

# 값으로 접근
print(Car(2))            # Car.hyundai

# 멤버의 이름과 값 확인
print(Car.hyundai.name)  # hyundai
print(Car.hyundai.value) # 2

열거형을 사용하는 이유

  • 가독성 향상: 숫자 대신 의미 있는 이름으로 상수를 표현할 수 있습니다.
  • 오류 방지: 잘못된 값이 할당되는 것을 컴파일 시점이 아닌 실행 중에도 쉽게 확인할 수 있습니다.
  • 유지보수 용이: 상수 값을 한 곳에서 관리할 수 있어 수정이 간단합니다.
  • 비교 안전성: 열거형 멤버끼리만 비교되므로 의도하지 않은 비교 오류를 막습니다.

추가 팁: auto() 활용하기

값을 직접 지정하기 번거롭다면 enum.auto()를 사용하면 자동으로 1부터 시작하는 정수 값이 할당됩니다.

from enum import Enum, auto

class Car(Enum):
    suzuki = auto()
    hyundai = auto()
    dezire = auto()

print(list(Car))
# [<Car.suzuki: 1>, <Car.hyundai: 2>, <Car.dezire: 3>]

마무리

파이썬의 enum 모듈은 클래스 기반으로 열거형을 손쉽게 정의할 수 있게 해줍니다. 상수 집합을 체계적으로 관리하고 싶다면 열거형을 적극적으로 활용해 보세요. 코드가 더 명확해지고 버그 발생 가능성도 줄어들 것입니다.