Как я могу представить «Enum» в Python?

До PEP 435 у Python не было python-shell эквивалента, но вы могли enumerations реализовать свой собственный.

Лично python3k я люблю все упрощать (я видел pythonista в сети несколько ужасно сложных enum примеров), что-то вроде этого...

class Animal:
    DOG = 1
    CAT = 2

x = Animal.DOG

В enumerations Python 3.4 (PEP 435) вы можете сделать pythonic Enum базовым классом. Это дает enums вам немного дополнительной py3k функциональности, описанной python-interpreter в PEP. Например, члены перечисления python-shell отличаются от целых чисел python-3.x и состоят из name и value.

from enum import Enum

class Animal(Enum):
    DOG = 1
    CAT = 2

print(Animal.DOG)
# 

print(Animal.DOG.value)
# 1

print(Animal.DOG.name)
# "DOG"

Если вы enum не хотите вводить значения, используйте py следующий ярлык:

class Animal(Enum):
    DOG, CAT = range(2)

Enum реализации python-3.x can be converted to lists and are iterable. Порядок его членов является py3k порядком объявления и не py имеет ничего общего с их pythonista значениями. Например:

class Animal(Enum):
    DOG = 1
    CAT = 2
    COW = 0

list(Animal)
# [, , ]

[animal.value for animal in Animal]
# [1, 2, 0]

Animal.CAT in Animal
# True

python

python-3.x

enums

2022-11-15T06:06:49+00:00