Встречается на собеседованиях • сегодня
Что такое метод __new__
Метод __new__ в Python отвечает за создание нового экземпляра класса. Это статический метод (хотя его не нужно явно помечать декоратором @staticmethod), который вызывается перед __init__.
Особенности:
- Возвращает новый экземпляр класса (обычно через
super().__new__). - Может переопределяться для управления созданием объектов (например, для реализации паттерна Singleton).
- Если
__new__не возвращает экземпляр класса,__init__не вызывается.
Пример:
python
class Singleton:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance
obj1 = Singleton()
obj2 = Singleton()
print(obj1 is obj2) # True (один и тот же объект)Важно:
__new__работает с классом (cls), а__init__— с экземпляром (self).- Чаще используется в метаклассах или для нетривиального управления памятью.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы