Wie erbe ich richtig von einer Superklasse mit einer __new__-Methode?

Nehmen wir an, wir haben eine Klasse 'Parent', die aus irgendeinem Grund hat__new__ definiert und eine Klasse 'Child', die davon erbt. (In meinem Fall versuche ich, von einer Klasse eines Drittanbieters zu erben, die ich nicht ändern kann.)

class Parent:
    def __new__(cls, arg):
        # ... something important is done here with arg

Mein Versuch war:

class Child(Parent):
    def __init__(self, myArg, argForSuperclass):
         Parent.__new__(argForSuperclass)
         self.field = myArg

Aber während

p = Parent("argForSuperclass")

funktioniert wie erwartet

c = Child("myArg", "argForSuperclass")

schlägt fehl, weil 'Child' versucht, das anzurufen__new__ Methode, die er von 'Parent' erbt, anstatt von seiner eigenen__init__ Methode.

Was muss ich in 'Child' ändern, um das erwartete Verhalten zu erhalten?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage