假设我们有一个类 'Parent' ,由于某种原因已经__new__
定义了一个类 'Child' 从它继承。(在我的情况下,我试图从我无法修改的第 3 方类继承)
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")
失败,因为 'Child' 试图调用__new__
它从 'Parent' 继承的方法而不是它自己的__init__
方法。
我必须在“孩子”中进行哪些更改才能获得预期的行为?