我需要在函数中定义一个变量,并在原函数内的函数中使用它。例如,
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()
函数内定义。有任何想法吗?感谢。
答案 0 :(得分:1)
如果您使用的是python3.x,则可以使用nonlocal
关键字而不是global
,并且您的功能应该有效。
如果您使用的是python2.x,那么您就会遇到旧的黑客攻击,比如将值放入容器并改变那个。这是一个丑陋的黑客(这就是为什么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()