在线客服
扫描二维码
下载博学谷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数据可视化操作原理
后端是处理数据提取用户想要的数据。简单常用的是Python,相对于java,c, c++,Python简直对初学者太友好,提供丰富多彩的API接口,比如常见的降维聚类算法:PCA, t-SNE, MDS, k-means等。如果用c实现过PCA算法有几百行代码,可在Python里只需要三行代码。用Python实现对Iris数据集使用PCA算法以及展示效果。
6987
2019-12-18 17:41:06
Python数据科学家学习计划分几步?
Python数据科学家学习计划分几步?起步开始学习旅程之前,要清楚为什么使用Python?Python如何发挥作用?首先我们需要一份关于数据分析方面的Python学习路径,适合新手入门学习。已经学习了大部分的机器学习技术,需要关注一下深度学习。
5117
2020-03-26 16:37:36
无基础可以学习Python教程吗?
对于大多数初学者来说,在学习Python 时都会感到压力繁重,因为毫无基础去学习这种跨品台的计算机程序设计语言,无疑是一种自我挑战。但是相比Java而言,学习Python快,对于急需找到工作的人来说是一个非常好的选择。
4374
2020-05-28 15:19:45
Python五大应用领域
Python五大应用领域,要说近两年最火的编程语言是什么?毫无疑问是Python,而且不仅是编程人员、为做论文数据的研究生、职场人士纷纷加入Python学习大军。而市面上的Python课程也会针对大家不同需求进行调整。对于想要通过Python学习获得一份工作的朋友,对于Python的应用领域必须了解。
4811
2020-06-12 14:32:11
set数据结构基础学习笔记
set又叫集合,它是⼀个十分重要的数据结构。它行为与数据结构列表数据结构相似,不同之处在于区别在于set包含重复的值。下面我们一起来看看set数据结构的概念、使用场景以及数学运算,总结梳理一下set数据结构的基础学习笔记。
4507
2020-06-29 10:02:32