在一个函数中定义的变量,在这个函数中的一个函数中需要 - Python

Variable defined in a function, needed within a function within this function - Python

我需要在函数内定义一个变量,并在原始函数内的函数中使用它。例如,

def go_to_next_function():
    globvar = 0
    def add_one_to_globvar():
        global globvar  
        for i in range(10):
            globvar += 1
            print(globvar)
    add_one_to_globvar()
go_to_next_function()

现在我知道如果 globvar 是在所有函数之外定义的,那么它会起作用,但我希望它在 go_to_next_function() 函数内部定义。有任何想法吗?谢谢

如果您使用 python3.x,您可以使用 nonlocal 关键字而不是 global,您的功能应该可以工作。

如果您使用的是 python2.x,那么您会受困于旧技巧,例如将值放入容器中并改变 that。这是一个丑陋的 hack(这就是为什么首先添加 nonlocal):

def go_to_next_function():
    closure_var = [0]
    def add_one():
        closure_var[0] += 1
        print closure_var[0]
    add_one()
go_to_next_function()