Python Glossary English

Python 3.11+enumфункция

enum.global_enum

глобализация

Декоратор класса-перечисления: переносит его члены в глобальное пространство имён модуля (доступ по имени без префикса) и настраивает их repr под «модульный» стиль.

Синтаксис

@enum.global_enum

Декоратор придуман ради стандартной библиотеки, где константы исторически лежат прямо в модуле (re.IGNORECASE, socket.AF_INET), а перечисление добавили позже — он даёт новый класс, не ломая старый способ обращения. В своём коде применять его почти всегда не стоит: имена появляются в globals() в обход обычного присваивания, поэтому линтеры и автодополнение IDE их не видят, а случайное совпадение имён молча затрёт существующую переменную модуля.

Примеры

import enum, re
print(callable(enum.global_enum))   # → True
print(repr(re.IGNORECASE))   # → re.IGNORECASE
import enum, re
@enum.global_enum
class Color(enum.Enum): RED = 1; GREEN = 2
print(RED is Color.RED)   # → True
print(RED)   # → RED

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности