Как я могу представить «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
Как я могу представить «Enum» в Python?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.