简介:globle的英语解释是球的意思它的作用是把在局部作用用域中声明全局变量,我们在定义函数时常常会遇到需要使用全局变量的情况,这时候我们就可以使用它 代码例子:
#python中规定m是全局变量,它在当前python文件中都能被访问m = 1def foo ():# 函数和类会内部会形成一个局部作用域,函数和类当中是不能直接使用全局变量的m=10print('函数foo内m的值:',m)if __name__ == '__main__':print(m)#输出结果:1函数foo内m的值: 10
我们可以尝试在函数内更改全局变量的值:
#python中规定m是全局变量,它在当前python文件中都能被访问m = 1def foo ():# 函数和类会内部会形成一个局部作用域,函数和类当中是不能直接使用全局变量的m+=10print('函数foo内m的值:',m)if __name__ == '__main__':print(m)foo()#输出结果UnboundLocalError: local variable 'm' referenced before assignment是报错信息提示我们m是没有访问的本地变量(就是说我们不认识这个m,他是没有实际意义的)
那应该怎么定义呢(啰嗦了大半天终于说到点子上了)? 需求:把上面的foo函数内的m变量声明为全局变量 命令:
#python中规定m是全局变量,它在当前python文件中都能被访问m = 1def foo ():# 函数和类会内部会形成一个局部作用域,函数和类当中是不能直接使用全局变量的#在这里用关键字参数blobal给m赋值 那么系统就会认为函数内的m是全局变量mglobal mm+=10print('函数foo内m的值:',m)if __name__ == '__main__':print('调用函数前的m的值',m)foo()#我们在调用函数后新增一条打印语句就能发现,利用关键字global声明后全局变量m的值被改变了print('调用函数后的m的值:',m)#输出结果:调用函数前的m的值 1函数foo内m的值: 11调用函数后的m的值: 11