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

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

為什么循環體放在函數參數里就不會變了?

def count():

? ? fs = []

? ? for i in range(1, 4):

????????①a=i

? ? ? ? def f(②a=i):

? ? ? ? ? ? return a*a

? ? ? ? fs.append(f)

? ? return fs

f1, f2, f3 = count()

print f1(), f2(), f3()

為什么a=i放在1處是輸出999放在2處就是輸出149了。i是循環體會變所以我想讓他固定下來,所以用了a=i,但是放在外面就沒有用,放在函數參數里就可以了?十分疑惑,求大神解答!

正在回答

1 回答

這個函數類似于裝飾器,在函數f1,f2,f3沒有執行前,count()函數已經執行完了,若放在1處,count()函數執行完i和a已經變到3了,而且還沒有傳遞到f()函數內部,之后執行f1(),f2(),f3()函數時,執行的f()函數都是a=3的結果,? ? ?若是放在2處,執行count()函數時,每次執行f()函數,a已經作為參數傳遞到f()函數內部了。? ?這樣就會出現你這樣的結果了

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

慕沐9422798 提問者

再問一下怎么才算將參數傳遞到函數內部呢?
2019-07-25 回復 有任何疑惑可以回復我~
#2

weibo_慕圣4053891 回復 慕沐9422798 提問者

引用該函數的時候,就會傳遞到函數內部了
2019-07-30 回復 有任何疑惑可以回復我~

舉報

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

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

進入課程

為什么循環體放在函數參數里就不會變了?

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

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

幫助反饋 APP下載

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

公眾號

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