Встречается на собеседованиях • сегодня

Какой компонент языка вызывает магические методы __new__, __call__, __init__ в Python

В Python эти методы вызываются автоматически при создании и инициализации объекта.

  • __new__ вызывается первым для создания экземпляра (возвращает новый объект).
  • __init__ вызывается после __new__ для инициализации объекта.
  • __call__ вызывается, когда экземпляр класса используется как функция.

Пример:

python
class Example:
    def __new__(cls, *args, **kwargs):
        print("__new__ called")
        return super().__new__(cls)

    def __init__(self, value):
        print("__init__ called")
        self.value = value

    def __call__(self, x):
        print(f"__call__ with {x}")

obj = Example(10)  # Вызовет __new__ и __init__  
obj(5)             # Вызовет __call__  

Вывод:

text
__new__ called  
__init__ called  
__call__ with 5  
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы