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

Что делает __new__ в Python

Метод __new__ отвечает за создание нового экземпляра класса. Он вызывается перед __init__ и возвращает новый объект. В отличие от __init__, который инициализирует уже созданный объект, __new__ контролирует сам процесс создания.

Пример:

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 (один и тот же объект)

Ключевые моменты:

  • Принимает класс (cls) первым аргументом.
  • Должен вернуть экземпляр (обычно через super().__new__).
  • Полезен для паттернов (например, Singleton) или работы с неизменяемыми типами.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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