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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一個基本的python問題

一個基本的python問題

慕的地8271018 2018-07-10 13:08:58
利用閉包返回一個計數器函數,每次調用它返回遞增整數:def createCounter():fs = [0]def counter():fs[0] = fs[0] + 1return fs[0]return counter我不明白為什么不能寫成下面這樣def createCounter():fs = 0def counter():fs = fs + 1return fsreturn counter
查看完整描述

2 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

函數默認只能讀取函數外變量,不可給外部變量賦值,如果寫賦值式會被默認為一個新創建的局部變量。如果想更改外部變量,則需在函數內容開頭寫“global 要使用的外部變量名”。
但是雖然外部變量不可變,但外部變量的屬性可以變。對于外部列表,不可以更改的是列表本身,列表中的值是可以改變的。列表就像一個書架,你可以從函數里往里放書或拿書,但不能把書架換掉。而整數、字符串等等就像書,是最小單位,沒法直接改。

查看完整回答
反對 回復 2018-07-30
?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

作用域的問題,你把fs的值傳給函def counter(fs)就好了

查看完整回答
反對 回復 2018-07-30
  • 2 回答
  • 0 關注
  • 782 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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