我正在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
实例)。实现这一目标的正确方法是什么?