在Python中设置枚举最简洁的方法是什么?
这个问题在这里已经有了答案:
在python 3.4(docs)中添加了Enums。 详情请参阅PEP 0435。
如果您使用的是Python 2.x,则在pypi上存在一个backport。
pip install enum34
您的使用示例与python enum的功能性API非常相似:
>>> from enum import Enum
>>> MyEnum = Enum('MyEnum', 'APPLE BANANA WALRUS')
>>> MyEnum.BANANA
<MyEnum.BANANA: 2>
但是,这是一个更典型的用法示例:
class MyEnum(Enum):
apple = 1
banana = 2
walrus = 3
如果你需要枚举实例来比较等于整数,你也可以使用IntEnum
,但我不建议这样做,除非有充分的理由需要这种行为。
你可以使用这个。 虽然稍长,但更具可读性和灵活性。
from enum import Enum
class Fruits(Enum):
APPLE = 1
BANANA = 2
WALRUS = 3
编辑:Python 3.4
使用枚举
In [4]: list(enumerate(('APPLE', 'BANANA', 'WALRUS'),1))
Out[4]: [(1, 'APPLE'), (2, 'BANANA'), (3, 'WALRUS')]
noob的回答应该是这样的
In [13]: from enum import Enum
In [14]: Fruit=Enum('Fruit', 'APPLE BANANA WALRUS')
枚举值不同于整数。
In [15]: Fruit.APPLE
Out[15]: <Fruit.APPLE: 1>
In [16]: Fruit.BANANA
Out[16]: <Fruit.BANANA: 2>
In [17]: Fruit.WALRUS
Out[17]: <Fruit.WALRUS: 3>
在你的问题中使用范围是一个更好的选择。
In [18]: APPLE,BANANA,WALRUS=range(1,4)
链接地址: http://www.djcxy.com/p/91737.html
上一篇: What's the cleanest way to set up an enumeration in Python?