您的位置:首页 > 编程语言 > Python开发

python中的闭包问题

2018-10-22 22:18 274 查看

基础知识回顾

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

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

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

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

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

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

python的闭包和延迟绑定

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

更新中。。。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: