python中global 和 nonlocal 的作用域

python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 。

一 global
global关键字用来在函数或其他局部作用域中使用全局变量。但是如果不修改全局变量也可以不使用global关键字。
1 gcount = 0
2
3 def global_test():
4 gcount+=1
5 print (gcount)
6 global_test()
UnboundLocalError: local variable 'gcount' referenced before assignment
如果函数内要对全局变量修改,需要使用关键字global

二、声明全局变量,如果在局部要对全局变量修改,需要在局部也要先声明该全局变量:

gcount = 0

def global_test():
global gcount
gcount+=1
print (gcount)
global_test()
如果在函数中声明 gcount 是全局变量,即可对其进行修改。 正确输出 1 。

猜你喜欢

转载自blog.51cto.com/13587169/2112424