装饰器的作用

装饰器是 Python 提供的一种语法糖,用于在运行时动态地增强函数或类的功能。

在 Python 中,装饰器(Decorator) 的作用是:

(1)在不修改原函数代码和调用方式的情况下,为函数添加额外功能。

(2)它本质上是一个高阶函数,接收一个函数作为参数并返回一个新的函数。

装饰器的核心作用

  • 添加日志功能

  • 添加权限校验

  • 统计函数执行时间

  • 缓存函数结果

  • 事务处理、上下文管理等

def repeat(times): # 装饰器参数

def decorator(func): # 原函数

def wrapper(*args, **kwargs):

for _ in range(times):

func(*args, **kwargs)

return wrapper

return decorator

@repeat(3) # 执行3次

def greet():

print("Hi")

greet()

输出如下:

Hi

Hi

Hi

定义 ( def ):你首先定义了 repeat 这个装饰器和 greet 这个函数。

装饰 ( @repeat(3) ):Python 解释器看到 @repeat(3) 后,会自动执行装饰过程。

它会创建一个新的函数(就是 wrapper ),这个新函数的功能是"执行原函数3次"。

然后,它让 greet 这个名字指向这个新的 wrapper 函数。

此时,函数还没有被执行,只是被"改造"了。

调用 ( greet() ):当你在代码中写下 greet() 并运行时,Python 会去执行 greet 这个名字所指向的函数。

由于它已经被装饰器改造过了,所以此时执行的是 wrapper 函数。

wrapper 函数的逻辑是:循环3次,每次都调用一次原始的 greet 函数。

原始的 greet 函数的功能是打印一次 "Hi" 。

因此,最终结果就是 "Hi" 被打印了3次。

相关推荐
Y幽谷客8 小时前
Python加载本地大模型(Qwen3.5 8B)
python·大模型
伞伞悦读9 小时前
【第36期】Python 目录与路径详解:pathlib、文件遍历、创建、复制、移动和删除风险
开发语言·python
线上放牧人9 小时前
Windows删除图标缓存
windows·python·pyqt
qq_5470261799 小时前
Python 变量和简单数据类型
python
智搜广告11 小时前
智搜广告:科技行业AI回答优化公司如何破局
大数据·python·elasticsearch·geo
IpdataCloud11 小时前
AI智能体调用工具怎么核验来源IP?归属地、网络类型与代理风险识别(含Python代码)
数据库·python·tcp/ip
2601_9669496511 小时前
只拿到股票代码还不够:量化程序到底还需要哪些标的信息?——从数据建模开始理解股票元数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
蒸鱼Yuzheng12 小时前
Python 游戏测试开发怎么准备:日志解析、接口校验、并发与可维护性
自动化测试·python·测试开发·面试题·游戏测试
Ivanqhz12 小时前
BM1688 双核架构
python·深度学习·神经网络·cnn·mlir
Java后端的Ai之路12 小时前
Python进阶探索17 - Python中的深拷贝与浅拷贝
人工智能·python·ai·浅拷贝·深拷贝