Python Glossary English

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