我正在刷新我關於一些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