news 2026/4/23 19:13:28

Python中的闭包

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python中的闭包

什么是闭包?

先给一个简单的定义:

闭包是嵌套函数的一种特殊形式,满足两个核心条件:

  1. 内层函数引用了外层函数的变量(而非全局变量);
  2. 外层函数返回了内层函数(而非执行内层函数)。

闭包的核心价值是:保留外层函数的变量环境,即使外层函数执行完毕,内层函数依然能访问到这些变量。

简单示例

defouter():print("这是外部函数")username="zhangsan"#局部变量definner():print("这是内部函数")print("username:",username)returninner res=outer()res()#inner()#运行结果这是外部函数 这是内部函数 username:zhangsan

闭包的核心应用

Python 装饰器本质就是闭包,比如实现一个 “计算函数执行时间” 的装饰器:

importtimedeftimer_decorator(func):# 外层函数接收被装饰的函数defwrapper(*args,**kwargs):# 内层函数封装额外逻辑start=time.time()result=func(*args,**kwargs)# 执行原函数end=time.time()print(f"函数{func.__name__}执行耗时:{end-start:.4f}秒")returnresultreturnwrapper# 使用装饰器@timer_decoratordeftest_func():time.sleep(0.5)test_func()# 输出:函数 test_func 执行耗时:0.5001 秒

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 18:37:44

Python推导式与生成器

Python推导式和生成器 推导式与生成器 """1.回顾列表推导式[x操作 for x in list if 条件]2.列表生成器(x操作 for x in list if 条件)结论:列表生成器会返回一个generator对象原理就是一个算法,快速生成一个列表3.yield关键字 --控制函数的运行结论…

作者头像 李华
网站建设 2026/4/22 23:08:27

AutoGen Studio实战案例:Qwen3-4B-Instruct-2507在智能客服

AutoGen Studio实战案例:Qwen3-4B-Instruct-2507在智能客服中的应用 1. 引言 随着人工智能技术的快速发展,智能客服系统正从传统的规则驱动模式向基于大语言模型(LLM)的智能代理架构演进。在这一背景下,AutoGen Stud…

作者头像 李华
网站建设 2026/4/23 7:01:18

告别繁琐!这款电子教材下载神器让教育资源获取如此简单

告别繁琐!这款电子教材下载神器让教育资源获取如此简单 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具 项目地址: https://gitcode.com/GitHub_Trending/tc/tchMaterial-parser 还在为找不到合适的电子教材而苦恼吗&#xff…

作者头像 李华
网站建设 2026/4/18 10:03:07

嵌入式界面设计:单色图像处理的快速理解路径

嵌入式图形实战:如何用最少资源让单色屏“活”起来?你有没有遇到过这样的场景?项目快上线了,UI设计师发来一个精致的PNG图标,而你的MCU连外部RAM都没有,目标屏幕还是个12864的黑白OLED。想显示点图形&#…

作者头像 李华
网站建设 2026/4/19 4:50:43

Windows 7终极Python安装指南:快速部署最新版本

Windows 7终极Python安装指南:快速部署最新版本 【免费下载链接】PythonWin7 Python 3.9 installers that support Windows 7 SP1 and Windows Server 2008 R2 项目地址: https://gitcode.com/gh_mirrors/py/PythonWin7 还在为Windows 7系统无法安装Python 3…

作者头像 李华
网站建设 2026/4/18 11:43:44

老款Mac现代化升级:OpenCore Legacy Patcher全流程技术解析

老款Mac现代化升级:OpenCore Legacy Patcher全流程技术解析 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 诊断阶段:设备兼容性深度评估 在开始升…

作者头像 李华