1、打开Python开发工具,新建‘glo.py’文件,并写代码如下:def func(): bl = 'abc' print (bl)def otherfunc(): print (bl)func()otherfunc()这里定义了两个函数,第一个函数内定义了一个局部变量bl,并打印出来,第二个函数试图打印第一个函数内定义的局部变量
2、F5运行代码,第一个函数顺利执行,打印出变量值,第二函数在打印第一个函数内的局部变量报错,因为局部变量作用域只在定义的函数内。
3、修改代码,在定义变量时使用global关键字,代码如下:def func(): global bl bl = 'abc' print (bl)def otherfunc(): print (bl)func()otherfunc()
4、F5运行代码,两个函数都顺利执行了,因为global关键字把变量提升为全局变量,作用域整个文件。
5、通常如果仅需要读取全局变量,不使用global也可以,凸鹣沮北把变量定义在函数外即可,如果要修改变量就一定要使用global声明,修改代码如下:bl = 泌驾台佐39;a'def func(): global bl bl = 'abc' print (bl)def otherfunc(): print (bl) otherfunc()func()otherfunc()
6、F5运行代码,结果如下图所示,这里调用了两次otherfunc函数,第一次调用时变量bl还没有被global声明,变量值为最初的赋值,第二次在func函数将bl声明名global,并修改其变量值后,所以第二次调用打印的是修改后的值。
7、修改代码,将文件中global亿姣灵秀类型的变量打印出来,代码如下:bl = 'a'def func(): global bl bl = 'abc' pr足毂忍珩int (bl)def otherfunc(): print (bl) print (func.__globals__['bl'])
8、F5运行代码,打印出global变量bl的值a,因为此时func函数还没有执行,所以变量值为a