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