Встречается на собеседованиях • сегодня
Зачем нужен метод __new__
Метод __new__ отвечает за создание нового экземпляра класса, а __init__ — за его инициализацию. __new__ вызывается перед __init__ и возвращает новый экземпляр.
Основные случаи использования:
- Создание неизменяемых объектов (например, кортежей, строк), где нужно контролировать процесс создания.
- Реализация паттерна Singleton — гарантирует единственный экземпляр класса.
- Кастомизация создания объектов (например, возврат существующего экземпляра вместо нового).
Пример Singleton:
python
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
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы