Back to questions
Junior — Middle
55
Можете объяснить назначение и работу метода __new__ в Python?
Answer from AI
sobes.tech AI
Метод __new__ в Python отвечает за создание нового экземпляра класса. Это статический метод, который вызывается перед __init__ и выделяет память под объект.
Основные моменты:
__new__получает класс в качестве первого аргумента и должен вернуть новый объект этого класса (обычно вызываетсяsuper().__new__(cls)).- Используется, когда нужно контролировать процесс создания объекта, например, при реализации паттерна Singleton или создания неизменяемых объектов.
- После создания объекта
__init__инициализирует его.
Пример:
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)
Вывод:
Создаётся объект
Инициализация объекта