varfoo=function(n){varcount=n;functionbar(){n=countcount+=1;returnn}returnbar}>>>p=foo(10)>>>p()10>>>p()11>>>p()12python由于作用域的关系,函数内可以访问函数外部环境变量的值。但是不能对这个外部的环境变量进行操作。好像python的闭包不是这么用的?两个函数之间共享一个变量最方便的还是在一个class中用self?deffunc(data):count=datadefwrap():count+=1returncountreturnwrap>>>p=func(10)>>>p()UnboundLocalError:localvariable'count'referencedbeforeassignment#但是不是赋值,而是用一个数组保存数组,就可以deffunc(data):count=[data]defwrap():count[0]+=1returncount[0]returnwrap>>>p=func(10)>>>p()11>>p()12>>p()13谁能具体解释一下这个的原因?
青春有我
aluckdog
相关分类