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())
你看下r=f(i)和程序中的f(j)函数,这样你会发现j是形参,i就相当于传入的参数,所以就是相等的了
抱歉,不明白题目意思,请明确一下。