day32

@浙大疏锦行

函数专题2:装饰器

  1. 装饰器的思想

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

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

  1. 函数的装饰器写法

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

(1)定义装饰器:

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

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

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

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

(2)使用装饰器:

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

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

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

作业:

相关推荐
历程里程碑4 小时前
普通数组----合并区间
java·数据结构·python·算法·leetcode·职场和发展·tornado
weixin_395448914 小时前
mult_yolov5_post_copy.c_cursor_0205
c语言·python·yolo
执风挽^5 小时前
Python基础编程题2
开发语言·python·算法·visual studio code
纤纡.5 小时前
PyTorch 入门精讲:从框架选择到 MNIST 手写数字识别实战
人工智能·pytorch·python
kjkdd5 小时前
6.1 核心组件(Agent)
python·ai·语言模型·langchain·ai编程
小镇敲码人5 小时前
剖析CANN框架中Samples仓库:从示例到实战的AI开发指南
c++·人工智能·python·华为·acl·cann
萧鼎5 小时前
Python 包管理的“超音速”革命:全面上手 uv 工具链
开发语言·python·uv
alvin_20056 小时前
python之OpenGL应用(二)Hello Triangle
python·opengl
铁蛋AI编程实战6 小时前
通义千问 3.5 Turbo GGUF 量化版本地部署教程:4G 显存即可运行,数据永不泄露
java·人工智能·python
jiang_changsheng6 小时前
RTX 2080 Ti魔改22GB显卡的最优解ComfyUI教程
python·comfyui