jak poprawnie dziedziczę z nadklasy, która ma metodę __new__?
Załóżmy, że mamy klasę „Rodzic”, która z jakiegoś powodu ma__new__
zdefiniowana i klasa „Dziecko”, która dziedziczy z niej. (W moim przypadku próbuję dziedziczyć z klasy innej firmy, której nie mogę modyfikować)
class Parent:
def __new__(cls, arg):
# ... something important is done here with arg
Moja próba była:
class Child(Parent):
def __init__(self, myArg, argForSuperclass):
Parent.__new__(argForSuperclass)
self.field = myArg
Ale póki
p = Parent("argForSuperclass")
działa zgodnie z oczekiwaniami
c = Child("myArg", "argForSuperclass")
kończy się niepowodzeniem, ponieważ „Dziecko” próbuje zadzwonić__new__
metoda dziedziczy z „rodzica” zamiast z własnego__init__
metoda.
Co muszę zmienić w „Dziecko”, aby uzyskać oczekiwane zachowanie?