Встречается на собеседованиях • сегодня
В чем разница между __new__ и __init__
__new__ и __init__ — это два метода, участвующих в создании объекта в Python, но они выполняют разные задачи и вызываются на разных этапах.
Краткая суть:
__new__ — Создатель (конструктор): создаёт новый пустой объект в памяти и возвращает его.
__init__ — Инициализатор: наполняет созданный объект данными (атрибутами).
Пример кода:
text
class Example:
def __new__(cls, *args, **kwargs):
print("Вызван __new__: Создаём объект")
# Создаём объект, вызывая __new__ базового класса (object)
instance = super().__new__(cls)
return instance # Возвращаем созданный объект
def __init__(self, value):
print("Вызван __init__: Инициализируем объект")
self.value = value # Наполняем объект данными
# Создаём экземпляр
obj = Example(10)
# Вывод:
# Вызван __new__: Создаём объект
# Вызван __init__: Инициализируем объект
print(obj.value) # 10как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы
