Что запускается первее init или new
Python
Middle
Без компании
Что запускается первее init или new
Ответы
В Python первым всегда вызывается метод `__new__`, а затем `__init__`.
**Порядок вызова:**
- `__new__` — создаёт и возвращает новый экземпляр класса.
- `__init__` — инициализирует созданный экземпляр.
**Пример:**
```
class Example:
def __new__(cls, *args, **kwargs):
print("__new__ called")
return super().__new__(cls) # Создаёт экземпляр
def __init__(self):
print("__init__ called")
obj = Example() # Вывод: __new__ called, затем __init__ called
```
**Важно:**
- Если `__new__` не вернёт экземпляр класса, `__init__` не вызовется.
- `__new__` — статический метод (но не помечается декоратором), `__init__` — обычный метод экземпляра.