デコレータがどのように機能するかを理解しようとしていますが、デコレートされた関数がデコレータの変数にアクセスできるかどうか疑問に思っていました。たとえば、次のコードで、f1がlocalVariableにアクセスできるようにするにはどうすればよいですか?それは可能ですか、そしてそれは物事を行うための良い方法でさえありますか?
def funcDec(func):
localVariable = "I'm a local string"
def func2Return(*args):
print "Calling localVariable from decorator " + localVariable
func(*args)
print "done with calling f1"
return func2Return
@funcDec
def f1(x, y):
print x + y
print localVariable
f1(2, 3)