总结: 分析: 分析: 定义
python中满足以下3条的我们称它为闭包
:1.函数里定义了内部函数 2.外部函数有返回值且返回的值是内存部函数名 3.内部函数调用了外部函数的变量。
闭包结构示例
def fun(): c = 0 def fun_chicer(): #函数里定义了内部函数 c = c + 1 #内部函数调用了外部函数的变量。 print("有帮助就点个赞", c) return fun_chicer #外部函数有返回值且返回的值是内存部函数名
到这一步就已经理解了闭包的基本结构了。
闭包应用案例一(计数器)
def number_group(): numbers = [0] def add_one(): numbers[0] += 1 print(f'第{numbers[0]}次调用') return add_one x = number_group() x() x() x() 运行结果: 第1次调用 第2次调用 第3次调用
可以看到内部函数add_one被重复调用3次,直到程序运行结束才释放内存空间。
闭包应用案例二(求和)
def fun(a, b): c = 100 def fun_chicer(): s = a + b + c print("相加后的和为:", s) return fun_chicer x = fun(1, 2) b = fun(2, 4) x() b() 运行结果: 相加后的和为: 103 相加后的和为: 106
我们发现总共传入参数2次,重新传入参数后,上一次传入的数据仍然被保留。且不会受第二次传入数据的影响。
案例总结(闭包里数据的特征)
1.在闭包中,内部函数调用一次后所划分的内存空间是程序结束后才会释放
。
2.闭包中,重传参数后不会释放上次调用的内存空间,而是重新划分新的空间保存这次的数据,且函数能重复调用
。
3.在调用时可以对其中的数据进行修改(不止我所列的一种)
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算