Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад

Почему чаще переопределяют __new__, а не __call__ при реализации Singleton?

Вопрос проверяет понимание жизненного цикла объектов в Python и различий между созданием экземпляра и вызовом объекта

Короткий ответ

__new__ отвечает за создание объекта, а __call__ — за вызов уже существующего объекта. Singleton должен контролировать именно процесс создания экземпляра. Переопределяя __new__, можно гарантировать, что объект будет создан только один раз. Использование __call__ усложняет реализацию и делает поведение менее очевидным. Поэтому __new__ считается более корректным местом.

Длинный ответ

Зарегистрироваться

Развернутый ответ доступен только зарегистрированным пользователям.

Уровень

  • Рейтинг:

    4

  • Сложность:

    7

Навыки

  • Python

    Python

Ключевые слова

#singleton

#new

Подпишись на Python Developer в телеграм