在线客服
扫描二维码
下载博学谷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
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
从事数据科学Python和R语言学哪个好?
从事数据科学Python和R语言学哪个好?答案肯定是学Python更好,当然也不是就完全否定了学习R语言的作用和意义。只是和R语言比较起来,Python的优势更加明显。首先,Python应用场景更加广泛,且上手简单,在数据处理方面有着强大的能力。因此,如果是从事数据科学的朋友,选择学习Python会更好。
5152
2020-02-21 18:52:17
Python核心知识学习思维导图分享
近几年,Python一路高歌猛进,成为最受欢迎的编程语言之一,受到无数编程工作者的青睐。 据悉,Python已经入驻部分小学生教材,可以预见学习Python将成为一项提高自身职业竞争力的必修课。那么零基础的学习者应该怎么开始学习呢?本文将分享给大家关于Python核心知识学习的思维导图,一起来看看吧!
5005
2020-04-01 15:03:42
Python基础语法之学习print()函数
在AI+时代,编程已不是程序猿、攻城狮的专属属性,而是一个工具,或是一种技巧,本质上跟Word、PPT没啥区别。如果大家现在想掌握一门编程技能的话,那一定是 Python, 因为它既简洁高效,又能快速入门上手。本文将从Python基础语法中的print()函数开始学习,带领大家轻松入门Python。
4599
2020-04-15 12:34:52
不做程序员学Python有什么用?
不做程序员学Python有什么用?用处当然是十分广泛的,如果你的思维还停留在只有编程开发者才能学习Python,那就真的与现代社会脱节了。编程更像是一种工具,一种技能,而不仅仅只是一个职业岗位。尤其是以其高效简洁,新手友好著称的Python,更是适合所有想要提高工作效率的职场人掌握。下面我们一起看看学Python的实际作用,主要有自动化办公、数据分析以及Python的另类操作等等。
7422
2020-04-17 10:17:33
返回固定页面数据静态Web服务器代码怎么写?
返回固定页面数据静态Web服务器代码怎么写?Web服务器不管用户访问什么页面返回的都是固定页面的数据,在日常的不同业务需求中需要根据用户的请求返回指定页面的数据。
2845
2021-12-22 15:09:39