def make_accumulator(init):
def accumulate(part):
init = init + part
return init
return accumulate
A = make_accumulator(1)
print A(2)
給我: -非綁定本地錯誤時分配到功能精氨酸
Traceback (most recent call last):
File "make-accumulator.py", line 8, in <module>
print A(2)
File "make-accumulator.py", line 3, in accumulate
init = init + part
UnboundLocalError: local variable 'init' referenced before assignment
爲什麼是init不可見的內部積聚?
你在哪裏初始化的init ...當翻譯想做的init =初始化+的一部分,它應該知道之前的init初始化.. –
使用構造函數來設置初始值...'def make_accumulator(self,init):def __init __(self,init):self.init = init' –
@ lokesh1729它們將值傳遞給'make_accumulator',它是一個閉包變量。如果他們只執行'返回init + part',它就可以正常工作。 –