0

デコレーターで関数に渡された変数にアクセスする方法を理解する必要があります。

例を挙げて説明しましょう。次のようなことは可能ですか。

class test(object):
    ....
    @DecoratorClass(myWrapper(self, x))
    def myFunction(self, x):
        print x
        print self.y

ある時点で のインスタンスtest-classが作成され、myFunctionどこかから呼び出されます。同じ引数を にパスする必要がありますmyWrapper

これが十分に明確であることを願っています。

4

1 に答える 1

0

デコレーターは、関数をそれをラップする callable に置き換えるため、callable には元の関数と同じパラメーターが渡されます。たとえば、次のようになります。

def Decorator(original_function):
  def replacement_function(x):
    # You now have 'x' here... do what you want with it.
  return replacement_function

@Decorator
def MyFunction(x):
   # ...

関数が実行されるまで「myWrapper」の構築を遅らせる必要があることに注意してください(それまでは関数パラメータがないため)。

于 2013-01-30T09:49:29.373 に答える