调用外部函数,生成闭包:通过调用外部函数,来生成闭包。此时,内部函数引用了外部函数的变量,并且可以在外部函数执行完毕后继续访问和操作这些变量。
def outer_function():
# 外部函数的变量
x = 10
# 定义内部函数
def inner_function():
# 引用外部函数的变量
print(x)
# 返回内部函数
return inner_function
# 调用外部函数,生成闭包
closure = outer_function()
登录后复制
通过以上步骤,我们就成功地实现了Python中的闭包。此时,我们可以通过调用闭包来访问和操作外部函数的变量。
closure() # 输出:10
登录后复制
闭包的一个重要特性是,在外部函数执行完毕后,闭包仍然可以访问并操作外部函数的变量。这是因为闭包会保留对外部函数变量的引用,而不是拷贝变量的值。因此,我们可以通过多次调用闭包来观察闭包的行为。
def outer_function():
# 外部函数的变量
x = 10
# 定义内部函数
def inner_function():
# 引用外部函数的变量
print(x)
# 返回内部函数
return inner_function
# 调用外部函数,生成闭包
closure = outer_function()
closure() # 输出:10
# 修改外部函数的变量
outer_function.x = 20
closure() # 输出:20
登录后复制
通过上述代码,我们可以看到闭包在调用时会输出外部函数的变量,即使在外部函数执行完毕后,闭包仍然可以访问和操作外部函数的变量。