如何从嵌套函数中修改一个变量?

22 浏览
0 Comments

如何从嵌套函数中修改一个变量?

在尝试Python中的作用域时,遇到了一个小问题。我有这段代码。我想在嵌套的函数中改变变量var

def func_1():
    var = 1
    def func_2():
        var = 2
    func_2()
    print(var)
func_1()

当运行func_1()时,var仍然是1。是否有可能在func_2中编辑var

0
0 Comments

问题:如何从嵌套函数修改变量?

解决方法:可以使用nonlocal关键字。具体代码如下:

def func_1():
    var = 1
    def func_2():
        nonlocal var
        var = 2
    func_2()
    print(var)
func_1() # 输出:2

使用nonlocal关键字可以在嵌套函数中修改外部函数的变量。在上述代码中,func_2函数通过nonlocal关键字声明了var变量,然后将其赋值为2。在调用func_1函数时,func_2被调用并修改了var的值为2,所以最终输出为2。

0