Python: 在函数中使用全局变量
本篇记录一个python问题,在函数中使用全局变量。
·
前言
本篇记录一个python问题,在函数中使用全局变量
python全局变量
与C++相仿,python也有全局变量,并且在函数外定义的变量就是全局变量:
a = 5 # 全局变量
def func():
return
函数中使用全局变量
读取
在函数中可以直接读取全局变量的值:
a = 5 # 全局变量
print(id(a))
def func():
print(a)
print(id(a))
'''
94648897326528
5
94648897326528
'''
修改
在函数中不能直接修改全局变量的值,如下所示:
a = 5 # 全局变量
def func():
a=a+1
func()
将报UnboundLocalError: local variable 'a' referenced before assignment
,也就是说func
函数认为a
是一个局部变量,但没有被赋值。
正确做法是在函数中使用global
关键字提示编译器a
是一个已定义的全局变量:
a = 5 # 全局变量
def func():
global a
a=a+1 # 6
func()
print(a)
'''
6
'''
可以看到,全局变量a
被函数修改了。
局部作用域
与C++类似,可以在函数的局部作用域下,定义与全局变量同名的局部变量:
a = 5 # 全局变量
def func():
a=5
a=a+1 # 6
print(a)
func()
print(a)
'''
6
5
'''
局部变量被改变不会影响同名全局变量的值(因为它们的地址不同。)
更多推荐
已为社区贡献8条内容
所有评论(0)