Python之我对闭包的理解2

闭包的应用

'''
1. 保存返回返回闭包时的状态(外层函数值的状态)
'''

def func(a,b):
    c = 10

    def inner_func():  # 创建一个内部函数就占一个地址,扔出来的是不会被回收的
        s = a+b+c
        print('相加之后的结果是:',s)

    print(locals())
    return inner_func

# 调用func
# func(6,9)()

ifunc = func(6,9)  # ifunc变量就是inner_func   ifunc = inner_func
ifunc1 = func(2,8)
ifunc2 = func(1,9)
print(ifunc)
print(ifunc1)
print(ifunc2)

ifunc1()
ifunc()
ifunc2()

'''
当调用func(6,9)---》a=6,b=9--->inner_func()内部函数中-->返回内部函数
(此时返回的内部函数已经记录此时的a和b的值,所所以不会受到a,b改变的影响)
再次调用func(2,8)--》a=2,b=8---》保存在本次的inner_func()函数中,---》返回
的时候返回的就是保存2,8内部函数
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值