Предположим, у нас есть класс «Родитель», который по какой-то причине имеет __new__
и класс «Ребенок», который наследует его. (В моем случае я пытаюсь наследовать от 3-го класса партии, что я не могу изменить)Как правильно наследовать от суперкласса, который имеет метод __new__?
class Parent:
def __new__(cls, arg):
# ... something important is done here with arg
Моя попытка была:
class Child(Parent):
def __init__(self, myArg, argForSuperclass):
Parent.__new__(argForSuperclass)
self.field = myArg
Но пока
p = Parent("argForSuperclass")
работает как ожидается
c = Child("myArg", "argForSuperclass")
терпит неудачу, потому что «Ребенок» пытается вызвать метод __new__
, который он наследует от «Родитель» вместо своего собственного метода __init__
.
Что мне нужно изменить в «Ребенке», чтобы получить ожидаемое поведение?
Посмотрите на связанные: http://stackoverflow.com/questions/674304/pythons-use-of-new-and-init – charleyc