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