提问者:小点点

如何从内部函数[重复]更改函数范围内的变量


同样的代码在JS中也能工作,但是在python中它不会改变变量,那么如何改变嵌套函数中的变量呢? 提前感谢并对noob问题表示歉意

   def sample():
       a = False
       def sample2():
           a = True
       sample2()
       return a

共3个答案

匿名用户

使用非局部修改函数作用域之外的变量。

   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

这应该管用。

相关问题