Стандартный вопрос уровня middle-senior: "чем __new__ отличается от __init__, и зачем в Python вообще два метода для, казалось бы, одной задачи - создания объекта?" Короткий ответ: это буквально два разных этапа. __new__ создаёт объект, __init__ его настраивает уже после того, как он создан.