我有一个返回父类实例的函数:
def generateParent():
do_stuff
return Parent(some_parameters)
现在我想用调用的结果来初始化 Parent 的一个子类generateParent()
:
class Child(Parent):
def __new__():
return generateParent(some_other_parameters)
问题是,当我在 Child 中覆盖 Parent 的一些方法,然后在程序中的 Child 实例中调用它们时,会调用原始 Parent 方法而不是 Child 中的新方法。我在这里做错了吗?我在这里使用正确的设计来完成我的任务吗?
编辑:我既不能访问 Parent 也不能访问 generateParent()
解决方案(感谢@Paul McGuire 的回答):
class Child(object):
def __init__(self):
self.obj = generateParent()
def __getattr__(self, attr):
return getattr(self.obj, attr)