> 백엔드 개발 > 파이썬 튜토리얼 > Python 열거형 클래스 정의 및 함수(예제 분석)

Python 열거형 클래스 정의 및 함수(예제 분석)

乌拉乌拉~
풀어 주다: 2018-08-23 13:37:59
원래의
3745명이 탐색했습니다.

다음 글에서는 python 의 열거형 클래스가 무엇인지 알아보겠습니다. python 열거형 클래스가 무엇인지, Python 열거형 클래스가 Python 프로그래밍에서 어떤 역할을 할 수 있는지 알아보세요.

열거의 정의

먼저, 열거를 정의하려면 열거 모듈을 가져옵니다.
열거형 정의는 class 키워드를 사용하고 Enum 클래스를 상속합니다.

참고:

열거를 정의할 때 멤버 이름은 반복될 수 없습니다.

기본적으로 다른 멤버 값은 허용됩니다. 동일하다. 하지만 같은 값을 가진 두 멤버의 경우 두 번째 멤버의 이름은 첫 번째 멤버의 별칭으로 간주됩니다

열거에 같은 값을 가진 멤버가 있는 경우 다음과 같이 열거형 멤버를 가져올 때 값, 첫 번째 멤버만 얻을 수 있습니다

열거형의 정의를 제한하려는 경우 동일한 값을 가진 멤버를 정의할 수 없습니다. 데코레이터 @unique를 사용하여 [고유 모듈을 가져올 수 있습니다]

상수를 정의해야 할 때 한 가지 방법은 대문자 변수를 사용하여 정수로 정의하는 것입니다. 예를 들어 월: # 🎜🎜#

JAN = 1
FEB = 2
MAR = 3
...
NOV = 11
DEC = 12
로그인 후 복사

장점은 간단하다는 점이지만, 단점은 유형이 int이고 여전히 변수라는 점입니다.

더 나은 접근 방식은 이러한 열거형에 대한 클래스 유형을 정의하는 것입니다. 그러면 각 상수는 클래스의 고유한 인스턴스가 됩니다. Python은 이 함수를 구현하기 위해 Enum 클래스를 제공합니다.

from enum import Enum
Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))
로그인 후 복사

이 방법으로 Month.Jan을 직접 사용하여 상수를 참조하거나 모든 멤버를 열거할 수 있습니다. :

for name, member in Month.__members__.items():
    print(name, '=>', member, ',', member.value)
로그인 후 복사

value 속성은 멤버에 자동으로 할당되는 int 상수이며 기본적으로 1부터 계산됩니다.

열거형 유형에 대한 더 정확한 제어가 필요한 경우 Enum에서 사용자 정의 클래스를 파생시킬 수 있습니다.

from enum import Enum, unique

@unique
class Weekday(Enum):
    Sun = 0 # Sun的value被设定为0
    Mon = 1
    Tue = 2
    Wed = 3
    Thu = 4
    Fri = 5
    Sat = 6
로그인 후 복사

@unique 데코레이터는 열거형 유형이 없는지 확인하는 데 도움이 됩니다. 값이 중복됩니다.

이 열거형 유형에 액세스하는 방법은 여러 가지가 있습니다.

>>> day1 = Weekday.Mon
>>> print(day1)
Weekday.Mon
>>> print(Weekday.Tue)
Weekday.Tue
>>> print(Weekday['Tue'])
Weekday.Tue
>>> print(Weekday.Tue.value)
2
>>> print(day1 == Weekday.Mon)
True
>>> print(day1 == Weekday.Tue)
False
>>> print(Weekday(1))
Weekday.Mon
>>> print(day1 == Weekday(1))
True
>>> Weekday(7)
Traceback (most recent call last):
  ...
ValueError: 7 is not a valid Weekday
>>> for name, member in Weekday.__members__.items():
...     print(name, '=>', member)
...
Sun => Weekday.Sun
Mon => Weekday.Mon
Tue => Weekday.Tue
Wed => Weekday.Wed
Thu => Weekday.Thu
Fri => Weekday.Fri
Sat => Weekday.Sat
로그인 후 복사

멤버 이름을 사용하여 열거형 상수를 참조할 수 있고, 열거형을 기반으로 직접 열거형을 얻을 수도 있음을 알 수 있습니다. 값 상수의 값에 대해.

본 글은

파이썬 열거형 클래스 관련 지식을 위주로 소개한 내용입니다. 무슨 말인가. 이 글에서 제가 설명한 내용이 여러분에게 도움이 되고 파이썬을 더 쉽게 배울 수 있기를 바랍니다.

더 많은 관련 지식을 보려면 PHP 중국어 웹사이트

Python 튜토리얼 컬럼을 방문하세요.

위 내용은 Python 열거형 클래스 정의 및 함수(예제 분석)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿