枚举-支持Python枚举

枚举是给定的唯一值和常量值的一组标识符(成员)。在枚举内,可以通过身份比较成员。枚举对象也可以终止。

枚举模块定义以下类

枚举:用于创建枚举常量的基类。

IntEnum :用于创建枚举常量的基类,这些常量也是int的子类。

使用类语法创建枚举

#enumexample.py
from enum import Enum
class langs(Enum):
Python = 1
Java = 2
Cpp = 3
Ruby = 4

枚举成员具有人类可读的字符串表示形式和repr表示形式。

>>> from enumexample import langs
>>> print (langs.Python)
langs.Python
>>> print (repr(langs.Python))
<langs.Python: 1>

每个枚举成员都有名称和值属性。

>>> x = langs.Python
>>> x.name
'Python'
>>> x.value
1

您可以使用循环遍历所有成员。

>>> for lang in langs:
print (lang.name, lang.value)
Python 1
Java 2
Cpp 3
Ruby 4

可以借助值或身份来访问成员

>>> langs(3)
<langs.Cpp: 3>
>>> langs['Java']
<langs.Java: 2>

身份运算符是否可以用于比较枚举成员。

>>> x = langs(2)
>>> y = langs(4)
>>> x is y
False

具有相同名称的两个枚举成员无效。但是,两个枚举成员可以具有相同的值。将enumexample.py更改为以下内容:

from enum import Enum
class langs(Enum):
Python = 1
Java = 2
Cpp = 3
Ruby = 4
Cplusplus = 3
>>> from enumexample import langs
>>> langs.Cpp
<langs.Cpp: 3>
>>> langs.Cplusplus
<langs.Cpp: 3>
>>> langs(3)
<langs.Cpp: 3>

默认情况下,枚举可以使用多个名称作为同一值的别名。为了确保唯一值,请使用@ enum.unique专门用于枚举的类装饰器。