Python Glossary English

Python 3.4+enumпонятие

enum.EnumMeta

метакласс

Прежнее имя метакласса перечислений — псевдоним enum.EnumType, оставленный для обратной совместимости.

Синтаксис

enum.EnumMeta is enum.EnumType

Практическая польза от этого имени одна: type(Color) — это и есть метакласс, поэтому isinstance(X, EnumType) отвечает на вопрос «X — перечисление целиком?», в отличие от isinstance(X, Enum), проверяющего отдельный член. Переименование произошло в Python 3.11; старое имя работает и удалять его не собираются, но в новом коде пишите EnumType.

Примеры

# Python 3.11+
import enum
print(enum.EnumMeta is enum.EnumType)   # → True
print(enum.EnumMeta.__name__)   # → EnumType
import enum
class Color(enum.Enum): RED = 1; GREEN = 2
print(type(Color) is enum.EnumMeta)   # → True
print(len(Color))   # → 2
print(list(Color))   # → [<Color.RED: 1>, <Color.GREEN: 2>]

См. также

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