学分高考 Python

闭包是什么?具体怎么使用?

发布时间: 2022-05-25 18:12:01

闭包是什么?具体怎么使用?闭包是使用外部函数变量的内部函数,闭包可以保存外部函数内的变量,不会随着外部函数调用完而销毁。

学习目标:知道闭包的构成条件及定义闭包的语法格式。

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
温馨提示:
本文【闭包是什么?具体怎么使用?】由作者教培参考提供。该文观点仅代表作者本人,学分高考系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系管理员或作者进行删除。
我们采用的作品包括内容和图片部分来源于网络用户投稿,我们不确定投稿用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的权利,请联系我站将及时删除。
内容侵权、违法和不良信息举报
Copyright @ 2024 学分高考 All Rights Reserved 版权所有. 湘ICP备17021685号