Python 3.11+enumпонятие
enum.EnumCheck
проверки
Перечисление возможных проверок для verify(): UNIQUE, CONTINUOUS, NAMED_FLAGS (Python 3.11+).
Синтаксис
enum.EnumCheck
Сам по себе EnumCheck ничего не делает — его члены передают декоратору verify(), например @verify(UNIQUE, CONTINUOUS) над классом. Проверка выполняется один раз, в момент создания класса, то есть ошибка вылетит при импорте модуля, а не при обращении к члену. UNIQUE запрещает псевдонимы, CONTINUOUS — дыры в числовых значениях, NAMED_FLAGS требует, чтобы составные значения флагов собирались только из уже именованных битов.
Примеры
import enum
print(enum.EnumCheck.UNIQUE.name) # → UNIQUE
print(sorted(m.name for m in enum.EnumCheck)) # → ['CONTINUOUS', 'NAMED_FLAGS', 'UNIQUE']
print(isinstance(enum.EnumCheck.UNIQUE, str)) # → True
Nums = enum.Enum('Nums', {'A': 1, 'B': 2})
print(enum.verify(enum.EnumCheck.CONTINUOUS)(Nums) is Nums) # → True
Gap = enum.Enum('Gap', {'A': 1, 'B': 3})
enum.verify(enum.EnumCheck.CONTINUOUS)(Gap) # → ValueError
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности