Python 3.11+enumпонятие
enum.nonmember
члены
Обёртка, не дающая значению стать членом перечисления — остаётся обычным атрибутом класса (Python 3.11+).
Синтаксис
H = enum.nonmember(value)
Обратная задача: любое обычное значение в теле Enum молча становится членом, попадает в len(), в итерацию и в поиск по значению — nonmember оставляет его простым атрибутом класса. Обратите внимание, что C.HELPER после этого возвращает голое значение: у него нет .name и .value, и C(99) поднимет ValueError. Одно подчёркивание в начале имени не помогает — _X = 99 всё равно станет членом; исключает только приватное имя __X, поэтому для публичной константы нужен nonmember.
Примеры
import enum
class C(enum.Enum):
X = 1
HELPER = enum.nonmember(99)
print(C.HELPER) # → 99
print(len(C)) # → 1
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности