Встречается на собеседованиях • сегодня
Какие методы метакласса (metaclass) вызываются при создании класса
Метакласс управляет созданием класса, и при этом вызываются следующие методы:
__prepare__(cls, name, bases, **kwargs)(опциональный) — вызывается первым, возвращает пространство имён (обычноdict) для хранения атрибутов класса.__new__(mcls, name, bases, namespace, **kwargs)— создаёт и возвращает новый класс.__init__(cls, name, bases, namespace, **kwargs)— инициализирует созданный класс.
Пример:
python
class Meta(type):
@classmethod
def __prepare__(cls, name, bases, **kwargs):
print("__prepare__")
return {}
def __new__(mcls, name, bases, namespace, **kwargs):
print("__new__")
return super().__new__(mcls, name, bases, namespace)
def __init__(cls, name, bases, namespace, **kwargs):
print("__init__")
super().__init__(name, bases, namespace)
class MyClass(metaclass=Meta):
pass
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы