最近使用python过程中,发现使用全局变量时有时得声明global,有时不用,很郁闷,上网查了下资料,然后对比python的官方文档,发现原来global的作用是在给全局变量赋值之前声明,否则变量会被识别为局部变量。(补充:只有赋值需要添加global声明,其他类似列表的append()等函数可以不用声明)
比如
a=0
def test1():
print a#输出0
def test2():
a=1
print a#输出1
def test3():
global a
print a#输出0
a=1
print a#输出1
def test4():
a+=1#会报错,局部变量赋值之前被引用
print a