闭包中带有新值的变量存储在闭包的环境中。在闭包中定义的变量会被存储在闭包的内部环境中,并可以在闭包的生命周期内被访问和修改。
下面是一个使用闭包的代码示例:
def outer_function(x):
def inner_function(y):
return x + y
return inner_function
closure = outer_function(10)
result = closure(5)
print(result) # 输出 15
在上面的代码中,outer_function
是一个外部函数,它接受一个参数x
并返回一个内部函数inner_function
。在内部函数中,使用了外部函数的参数x
,并与传入的参数y
相加。
通过调用outer_function(10)
,我们得到一个闭包closure
,它持有外部函数的环境(包括变量x
的值为10)。然后,我们通过调用closure(5)
,将参数y
传递给闭包,闭包使用了外部函数的变量x
,并返回结果15。
这里,闭包中的变量x
是存储在闭包的环境中的,而不是存储在全局作用域或内部函数作用域中。这使得闭包能够捕获和访问外部函数的变量,并在闭包的生命周期内保持其值。
上一篇:闭包中词法作用域是如何发生的?
下一篇:闭包中的保留循环