Класс enum.EnumCheck
содержит параметры, используемые декоратором @enum.verify()
для обеспечения различных ограничений. Неудачные ограничения приводят к ошибке ValueError
.
Добавлен в Python 3.11
Примечание.
CONTINUOUS
иNAMED_FLAGS
предназначены для работы с целочисленными элементами.
UNIQUE
:Гарантирует, что каждое значение в перечислении имеет только одно имя:
from enum import Enum, verify, UNIQUE @verify(UNIQUE) class Color(Enum): RED = 1 GREEN = 2 BLUE = 3 CRIMSON = 1 # Traceback (most recent call last): # ... # ValueError: aliases found in <enum 'Color'>: CRIMSON -> RED
CONTINUOUS
:Гарантирует, что между элементом с наименьшим значением и элементом с наибольшим значением нет пропущенных значений:
from enum import Enum, verify, CONTINUOUS @verify(CONTINUOUS) class Color(Enum): RED = 1 GREEN = 2 BLUE = 5 # Traceback (most recent call last): # ... # ValueError: invalid enum 'Color': missing values 3, 4
NAMED_FLAGS
:Гарантирует, что любые группы/маски флагов содержат только именованные флаги. Полезно, когда значения указываются, а не генерируются функцией enum.auto()
.
from enum import Flag, verify, NAMED_FLAGS @verify(NAMED_FLAGS) class Color(Flag): RED = 1 GREEN = 2 BLUE = 4 WHITE = 15 NEON = 31 # Traceback (most recent call last): # ... # ValueError: invalid Flag 'Color': aliases WHITE and NEON are missing # combined values of 0x18 [use enum.show_flag_values(value) for details]