枚举特性
- 枚举可迭代
- 枚举可哈希
- 枚举不支持同名成员
- 允许枚举成员有相同的值
- unique装饰器可确保唯一的枚举值
- 枚举成员为单例,不可示例化,不可更改
示例
```python from enum import Enum, IntEnum, unique
class Color(Enum): RED = 1 GREEN = 2 BLUE = 3
枚举属性
print(Color.RED.name) # RED print(Color.RED.value) # 1
枚举可迭代
for i in Color: print(i)
Color.RED
Color.GREEN
Color.BLUE
for name, menber in Color.members.items(): print(name, menber)
RED Color.RED
GREEN Color.GREEN
BLUE Color.BLUE
枚举可哈希
a = {} for i in Color: a[i.name] = i.value print(a)
{‘RED’: 1, ‘GREEN’: 2, ‘BLUE’: 3}
可访问
print(Color(1)) # Color.RED
枚举不支持同名成员
class Shape(Enum): TEST = 1
# TEST = 1
允许枚举成员有相同的值
class Shape(Enum):
# DIAMOND将作为SQUARE的别名
SQUARE = 1
DIAMOND = 1
print(Shape.SQUARE) print(Shape.DIAMOND)
Shape.SQUARE
Shape.SQUARE
unique装饰器可确保唯一的枚举值
@unique class Shape(Enum): SQUARE = 1 DIAMOND = 12
IntEnum 是Enum变种也是 int的子类
class Request(IntEnum): SQUARE = 1 DIAMOND = 12
print(Shape.SQUARE == 1) # False print(Shape.SQUARE.value == 1) # True print(Request.SQUARE == 1) # True ```