在函数内修改全局变量,需要在函数里面定义global,否则只是创建了一个局部变量
a = False
def f():
if not a:
a = True #这里相当于创建了另一个局部变量 a,而不是修改全局变量 a
print(a)
正确应该是这样:
a = False
def f():
global a # 引用全局变量
if not a:
a = True
print(a)
在嵌套函数里,内层函数修改外层函数的变量,用nonlocal
def outer():
x = 1
def inner():
nonlocal x
x += 1
print(x)
inner()
print(x)
outer()
文章推荐
https://www.jb51.net/article/152425.htm