news 2026/6/10 12:18:22

day27装饰器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
day27装饰器

装饰器的本质是一个高阶函数,它接收一个函数作为参数,并返回一个新函数来替代原函数。这个新函数需要:

  1. 保留原函数的调用方式(参数和返回值)。
  2. 在原函数执行前后添加额外逻辑(如计时、日志等)。

因此,我们需要在装饰器内部定义一个新函数来实现这些功能。

装饰器的执行流程为:

  1. 定义装饰器函数display_time:它接收一个函数func作为参数,并返回wrapper函数。
  2. 定义被装饰函数prime_nums:此时prime_nums是一个普通函数对象。
  3. 应用装饰器:Python 自动将prime_nums作为参数传递给display_time,即执行display_time(prime_nums)
  4. 替换原函数display_time返回wrapper函数,Python 用这个新函数覆盖了原来的prime_nums

也就是说装饰后,原函数名指向wrapper,而非原始函数。

当你调用prime_nums()时,实际上执行的是wrapper(),它会:

  1. 记录开始时间
  2. 调用func()(即原函数)
  3. 记录结束时间并打印耗时

这种等价的设计,会让初学者搞不懂为什么突然可以采取这种优雅的写法,类似的写法还有很多,在python中叫做语法糖:通过规范的写法来让代码更加优美和简洁,比如列表推导式也是,我们在后面再提。

你可以把@理解为语法糖操作,实际上并非是@装饰器,而是@装饰器+下一行的代码 二者是一个整体

@浙大疏锦行

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

Langchain-Chatchat数据保留期限设定问答系统

Langchain-Chatchat 数据保留期限设定问答系统 在企业加速推进数字化转型的今天,AI 助手正从“能说会道”的玩具演变为真正嵌入业务流程的智能工具。尤其是在金融、医疗、法律等对数据敏感性极高的行业,如何让大模型既聪明又守规矩,成了落地…

作者头像 李华
网站建设 2026/6/9 22:13:18

Langchain-Chatchat故障排查手册知识问答系统

Langchain-Chatchat 故障排查手册知识问答系统 在企业智能化转型的浪潮中,一个日益突出的问题浮出水面:如何让AI真正理解“我们自己的事”?通用大模型虽然能谈天说地,但在面对公司内部的技术文档、产品手册或管理制度时&#xff0…

作者头像 李华
网站建设 2026/6/10 9:28:14

Langchain-Chatchat root cause分析方法知识平台

Langchain-Chatchat:构建企业级根因分析知识平台的技术实践 在 IT 运维、工业设备维护乃至金融风控等高可靠性场景中,面对突发故障时如何快速定位“根本原因”(Root Cause),一直是组织效率的关键瓶颈。传统方式依赖专家…

作者头像 李华
网站建设 2026/6/10 10:53:33

Langchain-Chatchat根因定位模型知识问答系统

Langchain-Chatchat 根因定位模型知识问答系统 在企业 IT 运维的日常中,一个常见的场景是:某服务突然响应缓慢,监控显示 Kafka 消费者组 lag 持续上升。工程师第一反应往往是翻文档、查历史工单、问老同事——整个过程耗时且依赖个人经验。如…

作者头像 李华
网站建设 2026/6/10 1:16:25

11、Linux与Windows集成网络指南

Linux与Windows集成网络指南 一、VNC相关及跨平台程序运行 在网络配置中,有一些工具能帮助我们实现特定功能。比如,http://www.uk.research.att.com/vnc/contrib/rvnc.txt 这个资源可帮助我们通过防火墙运行VNC。另外,TCP Wrappers能让机器限制可连接的IP地址,其二进制文…

作者头像 李华
网站建设 2026/6/9 22:55:23

24、深入了解 smbclient:连接 Linux 与 Windows 的桥梁

深入了解 smbclient:连接 Linux 与 Windows 的桥梁 服务名称与特殊章节注意事项 在连接 Linux 和 Windows 系统时,服务名称的设置是个需要注意的点。许多客户端,尤其是 DOS 客户端,会将服务名称限制为八个字符。虽然 smbd 没有这样的限制,但如果客户端截断了服务名称,连…

作者头像 李华