【发布时间】:2012-06-03 01:49:45
【问题描述】:
假设我们有一个类 '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' 尝试调用它从 'Parent' 继承的 __new__ 方法,而不是它自己的 __init__ 方法。
我必须在“孩子”中进行哪些更改才能获得预期的行为?
【问题讨论】:
标签: python inheritance