私はまだ得られなかったいくつかのpythonの機能について私の記憶をリフレッシュしています。私はthis python tutorialから学んでいます、そして、私が完全に理解していない例があります。これは、関数の呼び出しを数えるデコレータについてです、ここのコードです:Pythonデコレータは関数呼び出しをカウントします
def call_counter(func):
def helper(x):
helper.calls += 1
return func(x)
helper.calls = 0
return helper
@call_counter
def succ(x):
return x + 1
if __name__ == '__main__':
print(succ.calls)
for i in range(10):
print(succ(i))
print(succ.calls)
私はここで取得しないのはなぜ私たちは関数ラッパーの呼び出しをインクリメントされて何(helper.calls + = 1)の代わりに、関数自体を呼び出す、なぜそれが実際に動作していますか?
'@call_counter succ' ==' SUCC = call_counter(SUCC) =ヘルパー – Cheney