同样的代码在JS中也能工作,但是在python中它不会改变变量,那么如何改变嵌套函数中的变量呢? 提前感谢并对noob问题表示歉意
def sample():
a = False
def sample2():
a = True
sample2()
return a
使用非局部修改函数作用域之外的变量。
def sample():
a = False
def sample2():
nonlocal a
a = True
sample2()
return a
使用非本地
def sample():
a = False
def sample2():
nonlocal a
a = True
sample2()
return a
Python 3文档
非局部语句导致列出的标识符引用最近的封闭作用域中先前绑定的变量(不包括全局变量)。
def sample():
a = False
def sample2():
nonlocal a
a = True
sample2()
return a
这应该管用。