1.闭包的作用:
可以保存外部函数的变量,不会随着外部函数调用被销毁
2.闭包形成的条件:
(1)函数嵌套
(2)内部函数使用了外部函数的变量或者参数
(3)外部函数返回内部函数,这个使用了外部函数变量的内部函数叫闭包
3.实现闭包的格式:
# 外部函数
def func_outer():
num1 = 10
# 内部函数
def func_inner():
# 内部函数使用了外部函数的变量或者参数
resultnum = num1+10
print(resultnum)
# 返回内部函数,这里返回的内部函数就是闭包实例
return func_inner
# new_func就是闭包
new_func = func_outer()
# 执行闭包
new_func()
4.修改闭包内使用的外部函数变量
关键字:nonlocal
# 外部函数
def func_outer():
num1 = 10
# 内部函数
def func_inner():
# 内部函数使用了外部函数的变量或者参数
nonlocal num1
num1 = 30
resultnum = num1+10
print(resultnum)
# 返回内部函数,这里返回的内部函数就是闭包实例
return func_inner
# new_func就是闭包
new_func = func_outer()
# 执行闭包
new_func()