Parent
継承ではなく構成を使用してクラスを拡張しています。コードに示すように、 my"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)
ただし、 TypeError: 'Child' object is not callableで失敗した場合。また、メソッドへの呼び出しの実際の結果(インスタンスになる)ではなく、result
型があることもわかります。これを達成する正しい方法は何ですか?instancemethod
Parent