Встречается на 1% собеседований по Python
Какие методы метакласса (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
интервью вопросы и ответы