В чем разница между __new__ и __init__
Python
Middle
Без компании
В чем разница между __new__ и __init__
Ответы
`__new__` **и** `__init__` — это два метода, участвующих в создании объекта в Python, но они выполняют разные задачи и вызываются на разных этапах.
### **Краткая суть:**
`__new__` — **Создатель** (конструктор): создаёт новый пустой объект в памяти и возвращает его.
`__init__` — **Инициализатор**: наполняет созданный объект данными (атрибутами).
### *Пример кода:*
```
class Example:
def __new__(cls, *args, **kwargs):
print("Вызван __new__: Создаём объект")
# Создаём объект, вызывая __new__ базового класса (object)
instance = super().__new__(cls)
return instance # Возвращаем созданный объект
def __init__(self, value):
print("Вызван __init__: Инициализируем объект")
self.value = value # Наполняем объект данными
# Создаём экземпляр
obj = Example(10)
# Вывод:
# Вызван __new__: Создаём объект
# Вызван __init__: Инициализируем объект
print(obj.value) # 10
```