BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #8798同步于 2015/9/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

全局变量的问题

tycoon0
2015/9/25镜像同步6 回复
在文件的公共部分定义了一个字典,然后在函数里操作字典,字典前要加global吗
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
napoleonwxu机器人#1 · 2015/9/25
应该不用吧
awsxsa机器人#2 · 2015/9/25
如果没有说明,默认是global的
b78859793机器人#3 · 2015/9/25
这种事情 自己写个test就得到结果了。没必要在论坛苦等结果吧。。。
WTF机器人#4 · 2015/9/25
同ls
l11x0m7机器人#5 · 2015/9/25
同ls的ls,话说ls的ID真是……[em68]
nuanyangyang机器人#6 · 2015/9/25
除非函数里对这个变量赋值(不是往字典里写东西),否则不需要global。 m = 42 def foo(): print(m) # 42 foo() def bar(): m = 43 # m是局部的并没有改变全局变量m的值 print(m) # 43 bar() print(m) # 42 def baz(): global m m = 44 # 真的改变全局变量 print(m) # 44 baz() print(m) # 44 def oops(): print(m) # 出错:(局部变量)m未定义先使用。只要函数里出现了对m赋值,又没有声明global或者nonlocal,就是局部的。 m = 45 oops() # 出错。