day32

@浙大疏锦行

函数专题2:装饰器

  1. 装饰器的思想

不修改原函数代码、不改变原函数调用方式,给函数新增功能(如日志、统计、校验等),实现代码复用最大化。

装饰器是 "函数的函数"------ 接收原函数为参数,返回 "增强版" 新函数,间接扩展原函数功能。

  1. 函数的装饰器写法

基础写法为 "嵌套函数 + 返回函数",分为 "定义装饰器" 和 "使用装饰器" 两步:

(1)定义装饰器:

定义装饰器函数,接收原函数作为参数。

在装饰器函数内部定义一个 "内部函数",用于封装 "新增功能 + 原函数调用"。

内部函数通过*args, **kwargs接收任意参数,保证适配原函数的所有传参方式。

装饰器函数最终返回内部函数,替代原函数。

(2)使用装饰器:

通过@装饰器函数名的语法糖,直接将装饰器作用于目标函数(等价于 "原函数 = 装饰器函数名 (原函数)")。

  1. 注意内部函数的返回值

在内部函数中,先调用原函数并保存其返回值,最后将该返回值作为内部函数的返回值。

作业:

相关推荐
风吹心凉14 分钟前
python3基础2026.7.22
开发语言·python
小猴子爱上树2 小时前
一站式解决图片视频翻译难题的高效AI工具
人工智能·python·音视频
weixin_538601972 小时前
智能体测开Day31
开发语言·python
lbb 小魔仙2 小时前
Git + Python 项目工作流最佳实践:pre-commit、CI、CHANGELOG 自动化
git·python·ci/cd
dyxal2 小时前
最长公共子序列(LCS)
python·算法
你驴我2 小时前
WhatsApp Cloud API 速率限制下的令牌桶与退避策略实践
网络·后端·python
AC赳赳老秦2 小时前
司法公开数据采集应用:OpenClaw 抓取裁判文书公开信息,批量整理同类参考案例
java·大数据·python·数据挖掘·数据分析·php·openclaw
小大宇3 小时前
Python 集成 Conda
开发语言·python·conda
初学者,亦行者4 小时前
利用Pyecharts绘制堆叠柱状图
python·信息可视化·数据分析
林泽毅4 小时前
PyTRIO:当强化学习不再需要本地GPU
人工智能·python·深度学习·机器学习