在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
闭包是什么?具体怎么使用?闭包是使用外部函数变量的内部函数,闭包可以保存外部函数内的变量,不会随着外部函数调用完而销毁。
学习目标:知道闭包的构成条件及定义闭包的语法格式。
1. 闭包是什么?
学过函数知道当函数调用完,函数内定义的变量都销毁了,但有时候需要保存函数内的这个变量,每次在这个变量的基础上完成一些列的操作,如: 每次在这个变量的基础上和其它数字进行求和计算,那怎么办呢?可以通过闭包来解决这个需求。
闭包的定义:在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包。
2. 闭包的构成条件
通过闭包的定义可以得知闭包的形成条件:
(1)在函数嵌套(函数里面再定义函数)的前提下
(2)内部函数使用了外部函数的变量(还包括外部函数的参数)
(3)外部函数返回了内部函数
3. 简单闭包的示例代码
# 定义一个外部函数
def func_out(num1):
# 定义一个内部函数
def func_inner(num2):
# 内部函数使用了外部函数的变量(num1)
result = num1 + num2
print("结果是:", result)
# 外部函数返回了内部函数,这里返回的内部函数就是闭包
return func_inner
# 创建闭包实例
f = func_out(1)
# 执行闭包
f(2)
f(3)
运行结果:
结果是: 3
结果是: 4
闭包执行结果的说明:
通过上面的输出结果可以看出闭包保存了外部函数内的变量num1,每次执行闭包都是在num1 = 1 基础上进行计算。
4. 闭包的作用
闭包可以保存外部函数内的变量,不会随着外部函数调用完而销毁。
注意点:由于闭包引用了外部函数的变量,则外部函数的变量没有及时释放,消耗内存。
5. 小结
当返回的内部函数使用了外部函数的变量就形成了闭包;闭包可以对外部函数的变量进行保存;实现闭包的标准格式:
# 外部函数
def test1(a):
b = 10
# 内部函数
def test2():
# 内部函数使用了外部函数的变量或者参数
print(a, b)
# 返回内部函数, 这里返回的内部函数就是闭包实例
return test2 — 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
数据分析师招聘要求及岗位职责介绍
数据分析师招聘要求及岗位职责介绍,不同的企业业务类型不同对数据分析师的要求也有所差异,有的企业要求有丰富的工作经验、会使用SQL & Hive SQ、应用数学、统计学、电子商务、计算机等相关专业等要求,小编整理了第三方招聘网站数据分析岗位的招聘要供大家参考。
15601
2019-09-03 15:55:50
Python字符串常用技巧整理
相信在大家日常的文本处理工作中,都免不了要使用字符串。众所周知,使用Python处理字符串,十分的便捷和高效。本文整理了六大处理字符串的技巧,分别是字符串的切片和相乘,字符串中去掉一些字符,字符串的连接和合并,字符串的分割,字符串的开头和结尾的处理,字符串的查找和匹配。想要玩转Python字符串,就和我一起来看看吧!
7990
2019-12-02 16:44:31
Python容器有哪些?都有什么作用?
Python容器有哪些?都有什么作用?相信对Python容器有一定了解的朋友都应该知道,Python常用的容器一般有元祖、集合、字典、列表四种。而这些Python容器的作用概括起来,就是统一存储、管理一系列数据。本文将带大家一个个分析Python容器的具体内容,想要把Python容器知识点梳理一遍的朋友,可以一起来看看。
6930
2020-01-10 17:17:11
学习Python比较好的书籍推荐
近些年来,Python的热度一直处于上升阶段,到目前为止,Python已经成为和Java一样备受编程爱好者追捧的编程语言。因此越来越多的人都选择学习Python,只是很多人由于缺乏编程基础,不知道怎么开始学习Python。下面我将为大家推荐一些比较好的经典学习书籍,各种难易程度都有,大家可以选择适合自己的进行阅读学习~
9038
2020-05-29 16:28:21
返回固定页面数据静态Web服务器代码怎么写?
返回固定页面数据静态Web服务器代码怎么写?Web服务器不管用户访问什么页面返回的都是固定页面的数据,在日常的不同业务需求中需要根据用户的请求返回指定页面的数据。
4886
2021-12-22 15:09:39
