Python Glossary English

Python 3.11+enumфункция

enum.pickle_by_global_name

pickle

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

Синтаксис

member.__reduce_ex__ = enum.pickle_by_global_name

Подходит только перечислениям под @global_enum, члены которых продублированы в globals() модуля: pickle тогда хранит обычную ссылку вида module.NAME. Если такое имя из модуля исчезнет или его переименуют, распаковка упадёт на поиске атрибута, поэтому для обычных, не глобализированных перечислений берите pickle_by_enum_name.

Примеры

import enum
print(callable(enum.pickle_by_global_name))   # → True
Color = enum.Enum('Color', 'RED GREEN')
print(enum.pickle_by_global_name(Color.GREEN, 2))   # → GREEN
print(isinstance(enum.pickle_by_global_name(Color.GREEN, 2), str))   # → True
print(Color.GREEN.__reduce_ex__(2)[1])   # → (2,)
print(enum.pickle_by_enum_name(Color.GREEN, 2)[0] is getattr)   # → True

См. также

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