Python Glossary English

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