Junior — Middle
Pouvez-vous expliquer la finalité et le fonctionnement de la méthode __new__ en Python?
sobes.tech IA
Réponse de l'IA
Метод __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)
Вывод:
Создаётся объект
Инициализация объекта