¿Cómo se hereda correctamente de una superclase que tiene un método __new__?
Supongamos que tenemos una clase 'Parent', que por alguna razón tiene__new__
Definida y una clase 'Child' que hereda de ella. (En mi caso, estoy tratando de heredar de una clase de terceros que no puedo modificar)
class Parent:
def __new__(cls, arg):
# ... something important is done here with arg
Mi intento fue:
class Child(Parent):
def __init__(self, myArg, argForSuperclass):
Parent.__new__(argForSuperclass)
self.field = myArg
Pero mientras
p = Parent("argForSuperclass")
funciona como se espera
c = Child("myArg", "argForSuperclass")
falla, porque 'Niño' intenta llamar al__new__
método que hereda de 'Parent' en lugar de su propio__init__
método.
¿Qué tengo que cambiar en 'Niño' para obtener el comportamiento esperado?