Python编程global关键字有什么用
方法/步骤
-
1
打开Python开发工具,新建‘glo.py’文件,并写代码如下:
def func():
bl = 'abc'
print (bl)
def otherfunc():
print (bl)
func()
otherfunc()
这里定义了两个函数,第一个函数内定义了一个局部变量bl,并打印出来,第二个函数试图打印第一个函数内定义的局部变量
-
2
F5运行代码,第一个函数顺利执行,打印出变量值,第二函数在打印第一个函数内的局部变量报错,因为局部变量作用域只在定义的函数内。
0深入理解Python变量的作用域
-
3
修改代码,在定义变量时使用global关键字,代码如下:
def func():
global bl
bl = 'abc'
print (bl)
def otherfunc():
print (bl)
func()
otherfunc()
-
4
F5运行代码,两个函数都顺利执行了,因为global关键字把变量提升为全局变量,作用域整个文件。
-
5
通常如果仅需要读取全局变量,不使用global也可以,把变量定义在函数外即可,如果要修改变量就一定要使用global声明,修改代码如下:
bl = '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'
print (bl)
def otherfunc():
print (bl)
print (func.__globals__['bl'])
-
8
F5运行代码,打印出global变量bl的值a,因为此时func函数还没有执行,所以变量值为a
END
文章评论