をだから私はこのコードを持っている:機能属性 - 範囲
def collect_input(func):
"""
A decorator which adds an all_input attribute to the wrapped function.
This attribute collects any input passed to the function.
"""
def wrapper(*args, **kwargs):
wrapper.all_input.append(*args)
return func(*args, **kwargs)
wrapper.all_input = []
return wrapper
@collect_input
def foo(bar):
print('in foo')
foo(5)
foo('spam')
print(foo.all_input)
私の質問は:なぜあなたはfoo.all_input
にアクセスすることができ、それはcollect_input
スコープで宣言されている場合は?
の場所を取る方法を見ることができますこれは 'wrapper'関数を返します。 – Kasramvd