閉包的討論
老師能解釋一下 為什么不能寫成這樣 def count(): ? ?fs = [] ? ?for i in range(1, 4): ? ? ? ?def f(j): ? ? ? ? ? ?return j*j ? ? ? ?r = f(i) ? ? ? ?fs.append(r) ? ?return fs print count() [1, 4, 9] #反回 [1, 4, 9] #正確返回1 4 9 老師寫的也我能理解,但是兩種結構區別不理解 為什么一個返回 list 一個返回3個數值
2015-04-13
希望對你有幫助
2015-08-09
當初的理解就是同樣一個函數調用..結果確是不一樣的...讓我在點郁悶...之前看過點匯編知識..貌似有寄存器什么現場保護什么的..不是很清楚..大概是一個函數運行參數什么的也會保存恢復...想到這個貌似就理解了點...貌似不單單只是一個函數地址的問題...是不是python保存一個函數地址的時候還wf 把當時運行的環境保存了...之前C里面函數地址..貌似不是這樣的...還得負責傳參數...
2015-04-13
2015-04-13