Назад к вопросам
Junior — Middle
72
В чем заключается назначение метода __new__ в Python и чем он отличается от __init__?
Ответ от нейросети
sobes.tech AI
Метод __new__ в Python отвечает за создание нового экземпляра класса — он вызывается до __init__ и возвращает сам объект. Это статический метод, который принимает класс в качестве первого аргумента и должен вернуть объект этого класса (или подкласса).
Метод __init__ вызывается после __new__ и инициализирует уже созданный объект, устанавливая его атрибуты.
Основное отличие:
__new__создает и возвращает объект;__init__настраивает (инициализирует) уже созданный объект.
Пример:
class MyClass:
def __new__(cls, *args, **kwargs):
print("__new__ called")
instance = super().__new__(cls)
return instance
def __init__(self, value):
print("__init__ called")
self.value = value
obj = MyClass(10)
Вывод:
__new__ called
__init__ called