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