假设我们有一个名为 'Parent' 的类,由于某种原因它定义了 __new__
方法,还有一个继承自它的类 'Child'。
(在我的情况下,我试图继承一个无法修改的第三方类)
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' 尝试调用从 'Parent' 继承的 __new__
方法,而不是它自己的 __init__
方法。
我需要在 'Child' 中做哪些更改才能获得期望的行为?