>백엔드 개발 >파이썬 튜토리얼 >열거형 파이썬이 뭐죠?

열거형 파이썬이 뭐죠?

silencement
silencement원래의
2019-06-22 10:38:063168검색

열거형 파이썬이 뭐죠?

열거 유형은 일반적으로 요일, 월, 상태 등과 같은 특정 제한된 컬렉션을 나타내는 데 사용되는 레이블 또는 상수 컬렉션으로 간주될 수 있습니다. 파이썬의 기본형(내장형)에는 특별한 열거형이 없지만 딕셔너리, 클래스 등 다양한 메소드를 통해 구현할 수 있습니다.

WEEKDAY = {
  'MON': 1,
  'TUS': 2,
  'WEN': 3,
  'THU': 4,
  'FRI': 5
  }
  class Color:
  RED = 0
  GREEN = 1
  BLUE = 2

위 두 메소드는 단순한 열거형으로 간주할 수 있습니다. 구현 시 이러한 열거형 변수가 로컬 범위에서만 사용된다면 문제가 없지만 문제는 모두 변경 가능하다는 것입니다. 즉, 다른 위치에서 수정되어 일반적인 사용에 영향을 미칠 수 있다는 것입니다.

WEEKDAY['MON'] = WEEKDAY['FRI']
  print(WEEKDAY)
  {'FRI': 5, 'TUS': 2, 'MON': 5, 'WEN': 3, 'THU': 4}
  通过类定义的枚举甚至可以实例化,变得不伦不类:
  c = Color()
  print(c.RED)
  Color.RED = 2
  print(c.RED)
  0
  2

물론, 튜플과 같은 불변 유형(immutable)을 사용할 수도 있지만 이는 열거 유형의 원래 의도를 잃고 레이블을 의미 없는 변수로 저하시킵니다.

COLOR = ('R', 'G', 'B')
  print(COLOR[0], COLOR[1], COLOR[2])
  R G B

더 나은 솔루션을 제공하기 위해 Python 열거형 표준 라이브러리가 다음에 추가되었습니다. 버전 3.4 ~ PEP 435. 3.4 이전 버전의 경우 pip install enum을 통해 호환되고 지원되는 라이브러리를 다운로드할 수도 있습니다. enum은 Enum/IntEnum/unique라는 세 가지 도구를 제공하며 사용법은 매우 간단합니다. Enum/IntEnum을 상속하여 열거형 유형을 정의할 수 있습니다. IntEnum은 열거형 멤버를 정수 유형으로 제한하며 고유 메서드는 다음을 수행할 수 있습니다. 데코레이터는 열거형 멤버의 값을 반복 불가능하도록 제한합니다.

from enum import Enum, IntEnum, unique 
     try:
  @unique
  class WEEKDAY(Enum):
  MON = 1
  TUS = 2
  WEN = 3
  THU = 4
  FRI = 1
  except ValueError as e:
  print(e)
  duplicate values found in : FRI -> MON
  try:
  class Color(IntEnum):
  RED = 0
  GREEN = 1
  BLUE = 'b'
  except ValueError as e:
  print(e)
  invalid literal for int() with base 10: 'b'

위 내용은 열거형 파이썬이 뭐죠?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.