python——全局变量&局部变量
>>> count = 5 >>> def function(): count = 10 print(10) >>> function() 10 >>> count 5 >>> def function2(): global count count = 10 print(10) >>> function2() 10 >>> count 10
>>> count = 4
>>> def func():
count = count * 10
print(count)
>>> func()
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
func()
File "<pyshell#18>", line 2, in func
count = count * 10
UnboundLocalError: local variable 'count' referenced before assignment
如上述程序所示:定义的function()函数中试图修改全局变量count的值,使其变为10,这时python会使用屏蔽的方法,函数中定义的变量仅是一个局部变量,影响不到全局变量的值。
但是,如果非要在函数中修改全局变量的值,可使用关键字global,global关键字声明的变量就是全局变量了,如上述定义的函数function2()中,使用了global关键字,全局变量count的值也改变了。
最后一种情况,如果在定义函数中的变量在定义的函数中没有声明,即使这个变量是全局变量,也会被认定为在引用之前没有声明。