1

私は、より大きなプログラムの一部を含む python ファイルを持っています。つまり、ファイルは、使用される同じデータの一部を生成するために使用されます。それがどのように機能するかを知っています。

これらのファイルによって生成されたデータを処理する必要があります。これが動的に呼び出すモジュールを模倣する方法はありますか。つまり、関心のある実際のメソッドを提供し、オーバーライドされていないメソッド呼び出しに対して偽の応答を提供します。 .

__getattrib__ メソッドをオーバーライドしてこれを実行しようとしましたが、ひどく失敗しました (誤って消去されたため、ソースを利用できなくなりました)。

4

2 に答える 2

0

__add__のように関数を偽造することはできません__getattribute__

ここでは、クラス側で実装する必要があるすべてのメソッドを見つけることができます。__add__

それらを偽造するプロキシを実装しました。整数をエミュレートすることもできます。

上書きすると__getattribute__ 、これが便利になる場合があります。

class X(object):
    def __getattribute__(self, name): ...

    def use_this_getattribute(self):
        ... # uses getattribute from above

    @objectGetattributeFunction
    def use_original_getattribute(self):
        ...
于 2013-05-30T11:56:53.260 に答える