python中的闭包问题

基础知识回顾

1.定义函数时,形参并不占用内存存储单元。进行函数调用时,函数的形参被临时分配内存单元。调用结束时形参占用的内存存储单元被释放。

2.调用函数时,是会为函数分配临时函数空间,但函数的局部变量生命周期是只在函数运行时,一旦完成函数调用局部变量就被释放了。所以函数多次调用是在不同的函数空间调用,不会相互影响。

3.在执行函数的时候会先给函数体开辟一段内存来存贮函数的操作,执行完后函数的变量会释放,函数体(也就是函数代码)不会释放,一直在代码段中,以后要调用的时候还可以进行调用。返回的函数值会放在你定义好的变量中,如果没有接收返回值,那么该返回值会被丢弃。

4.析构函数(destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)。

闭包:高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。

闭包就是能够读取其他函数内部变量的函数。闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。

python的闭包和延迟绑定

def multipliers():
    return [lambda x : i*x for i in range(4)]
print ([m(2) for m in multipliers()] )

更新中。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值