看别人写的程序在方法里面的变量前加了global关键字,之前没接触过,遂学习记录下这个知识点
- 变量作用域
先要明确作用域的概念,定义在函数内部的变量拥有一个局部作用域,而定义在函数外的拥有全局作用域。
a = 5 # 这是一个全局变量
def hello():
a = 1 # a在这里是局部变量.
print("函数内是局部变量 : ", a)
return a
hello()
print("函数外是全局变量 : ", a)
运行结果
函数内是局部变量 : 1
函数外是全局变量 : 5
- global关键字
如果想要在函数内部用模块定义的变量的话,就需要用到global关键字
a = 5
def hello():
global a
# 声明告诉执行引擎用的是全局变量a
a = 1
print('In test func: a = %d' % a)
hello()
print('Global a = %d' % a)
运行结果:
In test func: a = 1
Global a = 1
可以看到函数里成功修改了全局变量a
参考资料
https://blog.csdn.net/diaoxuesong/article/details/42552943
http://www.runoob.com/python/python-functions.html