Python Glossary English

Python 3.11+enumфункция

enum.global_str

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

Функция __str__ для членов глобализированного перечисления: печатает голое имя члена без префикса класса.

Синтаксис

enum.global_str(member)

Напрямую её почти никогда не вызывают: это деталь механики декоратора @global_enum, который дублирует члены перечисления в глобальном пространстве модуля (как re.IGNORECASE) и подменяет __str__ на эту функцию. Смысл в том, чтобы print(IGNORECASE) и f-строка печатали ровно то имя, под которым константа доступна в модуле, а не RegexFlag.IGNORECASE. Побочный эффект — str() и repr() у такого члена расходятся, и это нормально.

Примеры

import enum
print(callable(enum.global_str))   # → True
Color = enum.Enum('Color', 'RED GREEN')
print(str(Color.RED))   # → Color.RED
print(enum.global_str(Color.RED))   # → RED
Color.__str__ = enum.global_str
print(str(Color.GREEN))   # → GREEN
print(repr(Color.GREEN))   # → <Color.GREEN: 2>

См. также

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