您现在的位置是:首页 > 文章详情

Python基础系列-闭包

日期:2018-08-22点击:446
版权声明:如需转载,请注明转载地址。 https://blog.csdn.net/oJohnny123/article/details/81979656

 第一次调用line_conf 外部函数return的是内部函数line的内存地址,也就是line1。第二次line1(5),才是执行的内部函数line,并return了a*x+b的值,此时内部函数是可以用到之前我们传入的变量a和b的,第二次line1(5)传入的变量是x 。

这里有个知识点,就是python的内存机制,它是将一个变量的值放在内存,然后变量名引用这个值的地址。所以两个变量的值相同,可能引用的是同个内存地址噢。

区别在哪呢:

1、普通的函数都是我们传变量进去,执行并返回,引用释放,内存清掉。

2、闭包是将变量绑定给内部函数,然后返回一个内部函数的内存引用。等到我们二次执行该闭包函数的内部函数后,内存才会释放。

#!/usr/bin/python # -*- coding: UTF-8 -*- """ Created by liaoyangyang1 on 2018/8/23 下午1:41. """ #装饰器也是一种闭包 #闭包函数的实例 def line_conf(a, b): def line(x): return a*x + b return line line1 = line_conf(1, 1) print(line1(5)) 

 

原文链接:https://yq.aliyun.com/articles/630666
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章