Back to questions
Junior — Middle
58
Какая роль у метода __new__ в процессе создания объекта в Python?
Answer from AI
sobes.tech AI
Метод __new__ в Python отвечает за создание нового экземпляра класса. Он вызывается первым при создании объекта и отвечает за выделение памяти под объект. В отличие от __init__, который инициализирует уже созданный объект, __new__ возвращает сам объект.
Пример использования:
class MyClass:
def __new__(cls, *args, **kwargs):
print("Создаем объект")
instance = super().__new__(cls)
return instance
def __init__(self, value):
print("Инициализируем объект")
self.value = value
obj = MyClass(10)
Здесь сначала вызывается __new__, который создает объект, затем __init__ инициализирует его. Метод __new__ полезен, когда нужно контролировать процесс создания объекта, например, при реализации паттерна Singleton или при наследовании от неизменяемых типов.