一、nonlocal和global关键字的对比
(1)global关键字代表声明全局变量, 局部变量无法对全局变量进行修改,若需要修改,则要利用关键字global进行声明。
x = 2
print(x)
def global_test():
global x
x = 1
print(x)
global_test()
print(x)
输出:2,1,1
从结果可以看出,全局变量x的值从2变成了1 。
(2)nonlocal声明的变量不是局部变量,也不是全局变量,而是外部嵌套函数内的变量。
def nonlocal_test():
count = 0
def test2():
nonlocal count
count += 1
return count
return test2
val = nonlocal_test()
print(val())
print(val())
print(val())
输出: 1,2,3