Sobes.tech
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 или при наследовании от неизменяемых типов.