레이블이 enum인 게시물을 표시합니다. 모든 게시물 표시
레이블이 enum인 게시물을 표시합니다. 모든 게시물 표시

2015년 5월 1일 금요일

파이썬의 Enum 클래스 (버전 3.4 이상)

 파이썬 3.4 이상에서 표준화된 Enum객체를 지원한다. 자세한 설명은 여기에 있다. 간략한 사용법을 알아보도록 하자.

 일단 Enum 클래스를 임포트해야 한다.

>>> from enum import Enum

첫 번째로 다음과 같이 클래스를 Enum을 상속해서 생성할 수 있다.

>>> class Color(Enum):
...     red = 1
...     green = 2
...     blue = 3

이제 Color.red 또는 Color.green 과 같이 사용할 수 있다. 첫 번째 값은 보통 1부터 시작한다. (0으로 시작하면 그 필드는 False가 된다.)

 다른 방법으로 다음과 같이 더 간단히 생성할 수 있다.

>>> Color = Enum('Color', 'red green blue')

유의할 점은 인스턴스 이름과  Enum생성자의 첫 인자가 (위에서 밑줄 쳐진 두 부분) 같아야 한다. 이제 이전과 마찬가지로 Color.red 또는 Color.green 과 같이 사용할 수 있다.

enum 필드는 name과 value를 가진다. 예를 들어 Color.blue 의 name 은 'blue' value 는 3 이다.

>>> Color.blue.name
'blue'

>>> Color.blue.value
3

>>> type(Color.blue)
<enum 'Color'>