还是看不懂这j的值如何取得,是跟f1,f2,f3有关吗
fs.append(f)为什么不是[1,4,9]一个列表呢?怎么看的
0=
2018-03-15
第一个问题,count返回的是一个list,f1,f2,f3依次取返回list结果的下表为0,1,2的结果,由于闭包特性,结果中f1()=i*i,f2()=i*i,f3()=i*i,i是相同的变量且不会被释放,调用f1(),由于i值已经是3了,所以f1()=9,f2()和f3()也是如此,如果不想这样,可以引入局部变量如默认参数,即f() 定义变为 f(m=i),相应的返回结果变为return i*i 变成return m*m,这样每个局部变量m会保留住调用时传入的i的信息
第二个问题:count()返回的是list,f1=count(),f1则为list,而f1()是函数调用,显然list是无法调用的,可以用(f1[0])()这种方式方位list的内容
举报