枚举类型默认可以对相同的值使用别名,但有时我们需要确保枚举类型不能重复,我们也有办法使每个枚举值只出现一次。我们可以引入装饰器“@unique”,它会遍历枚举成员,如果发现有重复就会立即抛出“ValueError”。

    1. from enum import Enum, unique
    2. @unique
    3. class Mistake(Enum):
    4. ONE = 1
    5. TWO = 2
    6. THREE = 3
    7. FOUR = 3
    8. Traceback (most recent call last):
    9. ValueError: duplicate values found in <enum 'Mistake'>: FOUR -> THREE