Python Glossary English

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Сообщить о неточности