Встречается на собеседованиях • сегодня
Какие методы метакласса (metaclass) вызываются в момент объявления самого класса
При объявлении класса вызываются следующие методы метакласса:
__prepare__(необязательный) - вызывается первым, возвращает пространство имён (обычно dict) для хранения атрибутов класса. Позволяет кастомизировать хранилище атрибутов.
python
@classmethod
def __prepare__(metacls, name, bases, **kwargs):
return OrderedDict()__new__- создаёт и возвращает новый класс. Получает метакласс, имя класса, кортеж базовых классов и пространство имён (из__prepare__).
python
def __new__(metacls, name, bases, namespace, **kwargs):
return super().__new__(metacls, name, bases, namespace)__init__- инициализирует созданный класс. Аналогичен обычному__init__, но для классов.
python
def __init__(cls, name, bases, namespace, **kwargs):
super().__init__(name, bases, namespace)Порядок вызова: __prepare__ → __new__ → __init__. Эти методы позволяют полностью контролировать процесс создания класса.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы