하지만 때로는 열거형 유형을 제어해야 하는 경우도 있습니다. 그런 다음 이러한 요구 사항을 충족하기 위해 Enum에서 사용자 정의 클래스를 파생시킬 수 있습니다. 위의 예를 수정하면
#!/usr/bin/env python3 # -*- coding: UTF-8 -*- from enum import Enum, unique Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')) # @unique 装饰器可以帮助我们检查保证没有重复值 @unique class Month(Enum): Jan = 'January' Feb = 'February' Mar = 'March' Apr = 'April' May = 'May' Jun = 'June' Jul = 'July' Aug = 'August' Sep = 'September ' Oct = 'October' Nov = 'November' Dec = 'December' if __name__ == '__main__': print(Month.Jan, '----------', Month.Jan.name, '----------', Month.Jan.value) for name, member in Month.__members__.items(): print(name, '----------', member, '----------', member.value)
출력 결과는 다음과 같습니다.
위의 예를 통해 열거 모듈은 반복(interator) 및 비교(비교) 함수로 열거 유형을 정의한다는 것을 알 수 있습니다. 구체적인 정수나 문자열을 사용하는 대신 값에 대해 잘 정의된 기호를 만드는 데 사용할 수 있습니다.
다음 섹션