Что `__init__` может сделать то, что` __new__` не может?

В Python__new__ используется для инициализации неизменяемых типов и__init__ обычно инициализирует изменяемые типы. Если__init__ были удалены из языка, что больше нельзя было сделать (легко)?

Например,

class A:

    def __init__(self, *, x, **kwargs):
        super().__init__(**kwargs)
        self.x = x


class B(A):

    def __init__(self, y=2, **kwargs):
        super().__init__(**kwargs)
        self.y = y

Может быть переписан с использованием__new__ как это:

class A_N:

    def __new__(cls, *, x, **kwargs):
        obj = super().__new__(cls, **kwargs)
        obj.x = x
        return obj


class B_N(A_N):

    def __new__(cls, y=2, **kwargs):
        obj = super().__new__(cls, **kwargs)
        obj.y = y
        return obj

Пояснение по объему вопроса: это не вопрос о том, как__init__ а также__new__ используются или в чем разница между ними. Это вопрос о том, что произойдет, если__init__ были удалены из языка. Что-нибудь сломается? Что-нибудь станет намного сложнее или невозможнее?

Ответы на вопрос(3)

Ваш ответ на вопрос