python 学习笔记(闭包)

闭包的定义

在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包。
*

闭包的构成条件

通过闭包的定义,我们可以得知闭包的形成条件:

  • 在函数嵌套(函数里面再定义函数)的前提下
  • 内部函数使用了外部函数的变量(还包括外部函数的参数)
  • 外部函数返回了内部函数
简单的闭包的示例代码
python 复制代码
#定义一个外部函数
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)
闭包的作用

闭包可以保存外部函数内的变量,不会随意外部函数调用完而销毁。

**注意:**由于闭包引用了外部函数的变量,则外部函数的变量没有及时释放,消耗内存。
*

闭包的使用
复制代码
###### 案例

需求:根据配置信息使用闭包实现不同人的对话信息,例如对话。

张三:到北京了吗?李四:已经到了,放心吧。
* **实现步骤说明**

  * 定义外部函数接收不同的配置信息参数,参数是人名

  * 定义内部函数接收对话信息参数

  * 在内部函数里面把配置信息和对话信息进行拼接输出

    ```python
    #外部函数
    def config_name(name):
        #内部函数
        def say_info(info):
            print(name+":"+info)

        return say_info

    tom=config_name("Tom")

    tom("你好!")
    tom("你好,在吗?")

    jerry=config_name("jerry")

    jerry("不在,不和玩!")
    ```
相关推荐
玄同76510 分钟前
从 0 到 1:用 Python 开发 MCP 工具,让 AI 智能体拥有 “超能力”
开发语言·人工智能·python·agent·ai编程·mcp·trae
小瑞瑞acd27 分钟前
【小瑞瑞精讲】卷积神经网络(CNN):从入门到精通,计算机如何“看”懂世界?
人工智能·python·深度学习·神经网络·机器学习
驭渊的小故事31 分钟前
简单模板笔记
数据结构·笔记·算法
火车叼位1 小时前
也许你不需要创建.venv, 此规范使python脚本自备依赖
python
火车叼位1 小时前
脚本伪装:让 Python 与 Node.js 像原生 Shell 命令一样运行
运维·javascript·python
孤狼warrior1 小时前
YOLO目标检测 一千字解析yolo最初的摸样 模型下载,数据集构建及模型训练代码
人工智能·python·深度学习·算法·yolo·目标检测·目标跟踪
Katecat996631 小时前
YOLO11分割算法实现甲状腺超声病灶自动检测与定位_DWR方法应用
python
野犬寒鸦1 小时前
从零起步学习并发编程 || 第七章:ThreadLocal深层解析及常见问题解决方案
java·服务器·开发语言·jvm·后端·学习
陈桴浮海1 小时前
【Linux&Ansible】学习笔记合集二
linux·学习·ansible
xhbaitxl2 小时前
算法学习day39-动态规划
学习·算法·动态规划