Зачем нужен метод __new__
Python
Middle
Без компании
Зачем нужен метод __new__
Ответы
Метод `__new__` отвечает за создание нового экземпляра класса, а `__init__` — за его инициализацию. `__new__` вызывается перед `__init__` и возвращает новый экземпляр.
Основные случаи использования:
- **Создание неизменяемых объектов** (например, кортежей, строк), где нужно контролировать процесс создания.
- **Реализация паттерна Singleton** — гарантирует единственный экземпляр класса.
- **Кастомизация создания объектов** (например, возврат существующего экземпляра вместо нового).
Пример Singleton:
```
class Singleton:
_instance = None
def __new__(cls, *args, **kwargs):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance
a = Singleton()
b = Singleton()
print(a is b) # True
```