可以看到,Color 枚举类中 red 和 green 具有相同的值(都是 1),Python 允许这种情况的发生,它会将 green 当做是 red 的别名,因此当访问 green 成员时,最终输出的是 red。
4:设置value唯一性,不允许出现相同的value
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#引入 unique from enum import Enum,unique #添加 unique 装饰器 @unique classColor(Enum): # 为序列值指定value值 red = 1 green = 1 blue = 3 print(Color['green'])
### 运行结果报错: Traceback (most recent call last): File "test.py", line 3, in <module> classColor(Enum): File "/python3.6/lib/enum.py", line 834, in unique (enumeration, alias_details)) ValueError: duplicate values found in <enum 'Color'>: green -> red