0
我正在擴展Parent
類使用組合而不是繼承。我通過從我"Child"
方法調用的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
現在一些方法調用(前Parent.method()
)返回Parent
實例。我想要的是在這些情況下能夠返回一個Child
實例。我想這樣的事情會做到這一點:
def __getattr__(self, attr):
"""Pass properties and method calls to Parent class"""
result = getattr(self.obj, attr)
return Child(result)
,但如果失敗了:類型錯誤:「兒童」對象不是可調用。我還看到result
的類型爲instancemethod
,而不是調用該方法的實際結果(這將是Parent
實例)。什麼纔是實現這一目標的正確方法?