关于python的作用域理解起来比较简单,最近做项目遇到了一个这样的问题,关于全局变量的关键词global该怎么用?
最开始以为只要是全局的变量在局部函数里使用就要在使用前声明,XX是全局的变量。
(注释的是输出结果)
a='a'
c='c'
def test():
global a
c
print a
print c
test()
#a
#c
#c
但是这样运行后发现,test里的c指向的仍然是全局变量。
a='a'
c='c'
def test():
global a
c = 'd'
print a
print c
test()
#a
#d
#c
改成这样以后c就是局部变量了。所以,当你的全局变量只是做获取的操作,不用global声明也是可以直接用的。如果要做改变引用的操作,就的有关键字global了,不然c就变成局部变量,指向另一个地方了。