Python 3.11+enumпонятие
enum.EnumType
метакласс
Метакласс всех перечислений: именно он превращает класс с атрибутами-константами в Enum (проверяет уникальность, создаёт члены). Актуальное имя с Python 3.11.
Синтаксис
class E(enum.Enum): ... # type(E) is enum.EnumType
Напрямую его называют редко, но именно он объясняет, почему у класса-перечисления работают len(Color), обход в цикле, Color['RED'] и Color(1): эти операции определены на метаклассе, а не на самом Enum. До Python 3.11 он назывался EnumMeta, и старое имя оставлено как псевдоним, так что код с ним не сломался. Наследоваться от него имеет смысл только если пишешь свой вид перечисления с изменённым поиском членов.
Примеры
import enum
class Color(enum.Enum):
RED = 1
print(type(Color).__name__) # → EnumType
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности