PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Python
[問題] 變數範圍
作者:
Arim
(象山下智久)
2014-11-28 23:24:02
hi,各位版友好
def foo():
print sys
if __name__ == '__main__':
sys = "aaa"
foo()
為什麼 foo 可以存取到 sys?
謝謝
作者:
alibuda174
(阿哩不達)
2014-11-28 23:47:00
可以嗎?
作者:
DemonDeath
(Beethoven Virus)
2014-11-28 23:51:00
不行吧
作者:
alibuda174
(阿哩不達)
2014-11-29 00:05:00
因為if並不是函式 不會形成區域變數你寫的程式裡 sys仍會變成全域變數可試著在最後print(globals()) 可看到全部的全域變數
作者: ocean5566 (煙大屌熟男)
2014-11-29 00:13:00
? 你覺得不行的點在哪裡?function裡面找不到變數 會往上找 直到盡頭
作者:
uranusjr
(â†é€™äººæ˜¯è¶…級笨蛋)
2014-11-29 00:14:00
寫過 C-like 語言的人第一直覺應該都會是不行
作者: ocean5566 (煙大屌熟男)
2014-11-29 00:15:00
sys就在上面 然後foo把它 印出來 有何問題 ....?
作者:
uranusjr
(â†é€™äººæ˜¯è¶…級笨蛋)
2014-11-29 00:17:00
但 Python 變數其實是 function/module scoped, 和 C 或Java 家族的 block scoped 不一樣, 所以認知要稍微調整
作者:
eric541
(YcK)
2014-11-29 15:30:00
u大有說了因為 Python 是 function/module scope所以單純寫在 if 內的變數其實不會只在 if 內而是global
作者: ocean5566 (煙大屌熟男)
2014-11-29 15:34:00
用中文觀點去理解英文文法 那你一輩子都學不會英文 end
作者:
ck574b027
(荒圍!定厝!賊!妹!)
2014-12-03 18:06:00
並沒有"變成 global variable",它就是 variable,if 不會新增 scope。
繼續閱讀
Re: [問題]如何讓os.system執行多筆指令
uranusjr
[問題]如何讓os.system執行多筆指令
arnold0613
[問題] 如何將照片使用介面讓user切割成方形
sobonbon
[問題] 安裝gensim包出現問題
OoShiunoO
[問題] 請教區網開啟和停用 ?
Love1019
Re: [問題] Django POST部份資料呈現在redirect page
walelile
Re: [問題]Django Transaction error
MacPerson
[心得] iPython 在win8 底下成功安裝的套件
sjgau
Re: [問題] Django POST部份資料呈現在redirect page
uranusjr
[問題] Django POST部份資料呈現在redirect page
walelile
Links
booklink
Contact Us: admin [ a t ] ucptt.com