Python 3.3+typesфункция
types.prepare_class()
динамическое создание классов
Выполняет первый шаг создания класса: выбирает метакласс и готовит пространство имён через __prepare__. Возвращает тройку (метакласс, ns, kwds).
Синтаксис
meta, ns, kwds = types.prepare_class(name, bases=(), kwds=None)
Полезен, когда класс собирают вручную и хотят знать, какой метакласс победит: Python берёт самый производный из метаклассов баз и явного metaclass=, а несовместимые дают TypeError. Из kwds ключ metaclass уже убран — остальное пойдёт в метакласс. Чаще всего достаточно new_class, который вызывает prepare_class сам.
Примеры
# Python 3.11+
import enum
import types
meta, ns, kwds = types.prepare_class('Color', (enum.Enum,))
print(meta.__name__, isinstance(ns, dict), kwds) # → EnumType True {}
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности