varfoo=function(n){varcount=n;functionbar(){n=countcount+=1;returnn}returnbar}>>>p=foo(10)>>>p()10>>>p()11>>>p()12python由于作用域的關(guān)系,函數(shù)內(nèi)可以訪問函數(shù)外部環(huán)境變量的值。但是不能對這個外部的環(huán)境變量進(jìn)行操作。好像python的閉包不是這么用的?兩個函數(shù)之間共享一個變量最方便的還是在一個class中用self?deffunc(data):count=datadefwrap():count+=1returncountreturnwrap>>>p=func(10)>>>p()UnboundLocalError:localvariable'count'referencedbeforeassignment#但是不是賦值,而是用一個數(shù)組保存數(shù)組,就可以deffunc(data):count=[data]defwrap():count[0]+=1returncount[0]returnwrap>>>p=func(10)>>>p()11>>p()12>>p()13誰能具體解釋一下這個的原因?
如何用 python 寫出像 javascript 這樣的閉包?
qq_遁去的一_1
2019-04-13 08:45:47