python 闭包 在循环中定义函数,函数变量会直接引用循环变量
python 闭包 在循环中定义函数,函数变量会直接引用循环变量(下面函数使用:def f(j): 和 def f(j=i): 都能正常执行,为什么j 默认会等于i 呢?)
def count():
fs=[]
for i in range(1,4):
#print('i=',i)
#def f(j):
def f(j=i):
#print('j',j)
def g():
return j*j
return g
r=f(i)
fs.append(r)
return fs
f1,f2,f3=count()
print(f1(),f2(),f3())