以下是一个示例代码,展示了如何使用闭包实现一个函数返回其上一次调用的值:
def closure_example():
previous_value = 0 # 初始化为0
def inner_function():
nonlocal previous_value # 使用nonlocal关键字声明previous_value是外部函数的变量
previous_value += 1 # 每次调用都将previous_value增加1
return previous_value
return inner_function
# 创建闭包函数对象
my_closure = closure_example()
# 调用闭包函数
print(my_closure()) # 输出1
print(my_closure()) # 输出2
print(my_closure()) # 输出3
在这个例子中,closure_example()
函数返回了一个内部函数inner_function()
作为闭包函数。inner_function()
内部的previous_value
变量是外部函数closure_example()
的局部变量,但是通过使用nonlocal
关键字,我们可以在内部函数中访问并修改这个变量。
每次调用闭包函数my_closure()
时,previous_value
都会自增1,并返回增加后的值。所以,每次调用my_closure()
时,它会返回上一次调用时的值加1。在上面的示例中,第一次调用my_closure()
时,返回1;第二次调用时,返回2;第三次调用时,返回3。