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())
2021-01-23
你看下r=f(i)和程序中的f(j)函數,這樣你會發現j是形參,i就相當于傳入的參數,所以就是相等的了
2021-01-18
抱歉,不明白題目意思,請明確一下。