0

我正在Parent使用组合而不是继承来扩展一个类。我将方法调用从 my 传递"Child"到 the Parent,如代码所示:

class Child(object):
    def __init__(self, obj):
        self.obj = obj

    def __getattr__(self, attr):
        """Pass properties and method calls to Parent class"""
        result = getattr(self.obj, attr)
        return result

现在一些方法调用(ex Parent.method())返回一个Parent实例。我想要的是能够Child在这些情况下返回一个实例。我在想这样的事情会做到这一点:

    def __getattr__(self, attr):
        """Pass properties and method calls to Parent class"""
        result = getattr(self.obj, attr)
        return Child(result)

但如果失败并出现:TypeError: 'Child' object is not callable。我还看到它result具有类型instancemethod而不是调用方法的实际结果(这将是一个Parent实例)。实现这一目标的正确方法是什么?

4

1 回答 1

-1

看起来您可能会覆盖变量 Child,因为子实例应该是可调用的。尝试寻找类似的东西

Child = Child(some_argument)
于 2013-07-18T22:41:46.547 回答