news 2026/5/30 17:53:41

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/5/29 21:09:09

循环队列:出队

参考视频 5.双向链表_栈_队列_哔哩哔哩_bilibili1小时15分钟到最后&#xff08;顺序队列的知识&#xff09; 6.循环队列_讲题_递归_哔哩哔哩_bilibili前20分钟 题目 #include <stdio.h> #include <string.h> #include <stdlib.h>#define ElemType char #…

作者头像 李华
网站建设 2026/5/30 15:41:41

孩子的这些“小动作”,其实是近视前的信号灯!

在学业压力日益加剧的当下&#xff0c;“每天户外活动2小时”“减少连续近距离用眼时间”等儿童青少年近视防控建议&#xff0c;虽在理论层面无懈可击&#xff0c;却往往难以落地。孩子每天大部分时间处于室内学习状态&#xff0c;传统防控手段难以兼顾“有效”与“易于应用”的…

作者头像 李华
网站建设 2026/5/30 10:09:48

Langchain-Chatchat金融欺诈识别知识查询平台

Langchain-Chatchat金融欺诈识别知识查询平台 在金融风控一线&#xff0c;一个常见的场景是&#xff1a;客服接到客户咨询&#xff0c;“某企业法人突然频繁支取大额现金&#xff0c;是否需要上报&#xff1f;” 翻找内部手册、比对监管文件、确认历史案例……整个过程可能耗时…

作者头像 李华
网站建设 2026/5/30 15:47:44

昇腾CANN算子生成与融合深度解析:从原理到实战

在AI模型部署过程中&#xff0c;算子作为NPU执行计算的最小单元&#xff0c;其效率直接决定了模型的整体性能。昇腾CANN&#xff08;Compute Architecture for Neural Networks&#xff09;作为连接AI框架与昇腾NPU的核心桥梁&#xff0c;提供了强大的算子生成与融合能力&#…

作者头像 李华
网站建设 2026/5/28 19:33:23

Langchain-Chatchat GDPR数据主体权利问答系统

Langchain-Chatchat GDPR数据主体权利问答系统 在当今全球隐私监管日益严格的背景下&#xff0c;企业面对的合规压力正以前所未有的速度增长。以《通用数据保护条例》&#xff08;GDPR&#xff09;为代表的数据保护法规&#xff0c;不仅要求组织妥善处理个人数据&#xff0c;更…

作者头像 李华
网站建设 2026/5/30 16:29:41

Langchain-Chatchat银行柜面操作知识查询平台

Langchain-Chatchat银行柜面操作知识查询平台 在银行一线柜台&#xff0c;每天都会面对大量高频、专业且容错率极低的业务咨询&#xff1a;客户问“定期存款提前支取要带什么材料&#xff1f;”、“一类账户开户是否需要工作证明&#xff1f;”……传统方式下&#xff0c;柜员需…

作者头像 李华