Python Glossary English

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