Python3.4中增加了Enum枚举类的功能。使用枚举类时需要先导入enum模块中的Enum。
from enum import Enumclass VIP(Enum):YELLOW = 1GREEN = 2BLACK = 3RED = 4print(VIP.RE
- 枚举类内置了
**__members__**属性,该属性是一个包含枚举类中所有成员的字典,通过遍历该属性,可以访问各个成员 - 枚举类中各个成员名称必须不同,值可以相同,但是当值相同的时候,python会认为是同一个成员,只是含有别名而言。需要避免出现这种情况的话,需要借助
**@unique**类装饰器(也是需要导包)。from enum import Enumclass VIP(Enum):YELLOW = 1GREEN = 1BLACK = 3RED = 4print(VIP['GREEN']) # 输出VIP.YELLOW
枚举类特点:from enum import Enum, unique@uniqueclass VIP(Enum):YELLOW = 1GREEN = 1BLACK = 3RED = 4print(VIP['GREEN']) #此时会报错
- 枚举类的各个成员名称不能相同
- 定义枚举类后,不能进行修改值。
- 枚举类不能实例化对象。
1. 枚举操作
1.1 遍历
```python from enum import Enum class VIP(Enum): YELLOW = 1 GREEN = 2 BLACK = 3 RED = 4
for name,member in VIP.members.items(): print(name, ‘—>’,member)
<a name="NYHSA"></a>### 1.2 枚举类型、枚举的名称,枚举的值```pythonfrom enum import Enum, unique# @uniqueclass VIP(Enum):YELLOW = 1GREEN = 2BLACK = 3RED = 4print(VIP.GREEN)print(VIP.GREEN.name)print(VIP.GREEN.value)VIP.GREENGREEN2
1.3 枚举运算
1.4 枚举转换
在数据库中存储的是int类型,但是后端取到数据后需要进行转换为枚举类型。from enum import Enum, unique# @uniqueclass VIP(Enum):YELLOW = 1GREEN = 2BLACK = 3RED = 4a = 1print(VIP(a)) # VIP()并不是和int()类似的类型转换
