Встречается на собеседованиях • сегодня

Зачем нужен метод __new__

Метод __new__ отвечает за создание нового экземпляра класса, а __init__ — за его инициализацию. __new__ вызывается перед __init__ и возвращает новый экземпляр.

Основные случаи использования:

  1. Создание неизменяемых объектов (например, кортежей, строк), где нужно контролировать процесс создания.
  2. Реализация паттерна Singleton — гарантирует единственный экземпляр класса.
  3. Кастомизация создания объектов (например, возврат существующего экземпляра вместо нового).

Пример 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
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы