亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

當count()函數返回了3個函數時,這3個函數所引用的變量 i 的值已經變成了3,這是為什么啊

當count()函數返回了3個函數時,這3個函數所引用的變量 i?的值已經變成了3,這是為什么啊

正在回答

4 回答

使用 ?print i ?分別在循環語句下的每一個小段測試一遍,你就會明白是什么原因了

0 回復 有任何疑惑可以回復我~

其實就是存入數組的內容由函數名改成了函數。就原始代碼把fs.append(f)改成fs.append(f()),打印f1,f2,f3就不會有999的情況了

1 回復 有任何疑惑可以回復我~

我自己的理解是for是循環語句,調用count語句,count中的for直接循環到底,也就是到i=3。不知道這樣理解是否正確

0 回復 有任何疑惑可以回復我~
def?count():
????fs?=?[]
????for?i?in?range(1,?4):
????????def?f():
?????????????return?i*i
????????fs.append(f)
????return?fs

f1,?f2,?f3?=?count()
print?f1(),f2(),f3()

返回的這幾個函數中,都引用了 函數 count 中的 變量 i(不是用的 i 變化過程中的值,而是引用的 i ,也就是,真正執行函數的時候 i 是多少,就是多少),后面執行print的時候,count函數已經執行結束了,count函數執行結束后 i 的值為 3 ,所以到后面 print 的時候,真正執行 返回的幾個函數的時候,i 已經是3了。

通俗點說,f 表明 會用count中 i 變量(是用 i 這個變量,不是用 i 當前的值?。。。?,但沒說現在用,同時 f 不會阻止 i 的變化,當count 執行結束后, i 已經是3了。

至于,為什么在count函數外,可以用count函數的變量 i ,那就是另一個問題了,可以自己再看下相關資料。

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
python進階
  • 參與學習       255563    人
  • 解答問題       3038    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

當count()函數返回了3個函數時,這3個函數所引用的變量 i 的值已經變成了3,這是為什么啊

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號