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?