0

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型があることもわかります。これを達成する正しい方法は何ですか?instancemethodParent

4

1 に答える 1

-1

子インスタンスは呼び出し可能でなければならないため、変数 Child をオーバーライドする可能性があるようです。のようなものを探してみてください

Child = Child(some_argument)
于 2013-07-18T22:41:46.547 に答える