Was kann `__init__` tun, was` __new__` nicht kann?

In Python,__new__ wird verwendet, um unveränderliche Typen zu initialisieren und__init__ initialisiert normalerweise veränderbare Typen. Wenn__init__ wurden aus der Sprache entfernt, was konnte (leicht) nicht mehr gemacht werden?

Beispielsweise

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

Könnte mit @ umgeschrieben werd__new__ so was

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

Erklärung zum Umfang der Frage: Dies ist keine Frage darüber, wie__init__ und__new__ verwendet werden oder was ist der Unterschied zwischen ihnen. Dies ist eine Frage darüber, was passieren würde, wenn__init__ wurden aus der Sprache entfernt. Würde etwas kaputt gehen? Wäre etwas viel schwieriger oder unmöglich zu tun?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage