__new__ — статический метод, который создаёт экземпляр объекта (аллокация памяти). __init__ — инициализирует уже созданный экземпляр (заполняет атрибуты). Порядок: сначала __new__ возвращает объект, потом __init__ его настраивает. Обычно переопределяют только __init__. __new__ нужен для immutable типов (int, str, tuple) — там нельзя менять объект в __init__, только создать нужный в __new__. Ещё __new__ используется для паттерна Singleton и кастомных метаклассов.
В чём разница между __init__ и __new__?
Senior
246 просмотровAFK Offer AI
Реализуйте очередь на двух стеках