#?希望一次返回3個(gè)函數(shù),分別計(jì)算1x1,2x2,3x3
def?count():
????fs?=?[]
????for?i?in?range(1,?4):
????????def?f():
?????????????return?i*i
????????fs.append(f)
????return?fs
f1,?f2,?f3?=?count()這道題有錯(cuò)誤,f1(),f2(),f3()最后都是9很多人發(fā)表了原因,大都說的差不多的話,但是我沒看懂他們說的。。。。。。為何那好,就此問題:最后的return fs ? 這是的fs應(yīng)該是[locatian1,location2,location3],這三個(gè)應(yīng)該是f()的三個(gè)地址那么 題后的f1,f2,f3=count()轉(zhuǎn)化為-->f1=location1;f2=location2;f3=location3那么f1(),f2(),f3()實(shí)際上都是對(duì)應(yīng)了自己的位置,return了自己對(duì)應(yīng)的i*i啊,為何最后都是9???為何說“因?yàn)殡m然返回的參數(shù)分別是1,2,3,但這幾個(gè)函數(shù)并沒有計(jì)算,等到計(jì)算的時(shí)候(print f1, f2, f3...)i已經(jīng)變成了3了,算以算出來都是9.”???真是沒懂
1 回答

qq_子非魚焉知夢(mèng)_0
TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊
http://idcbgp.cn/wenda/detail/343715?t=230845
剛回答了一個(gè)類似的問題、可以去看下、
添加回答
舉報(bào)
0/150
提交
取消