python进阶:装饰器

装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。

概括的讲,装饰器的作用就是为已经存在的函数或对象添加额外的功能。如在不改动已存在的函数情况下使用装饰器算多个函数的执行时间等功能。

为什么要用装饰器的三个原因:

python 复制代码
# ------------------------- 函数定义 ------------------------- 
import functools
import time
# 定义函数装饰器
def useTime(func):
    @functools.wraps(func)
    def execFunc(*args, **kw):
        # 定义开始时间
        beginTime = time.time()
        print("函数执行前: ", beginTime)
        res = func(*args, **kw)
        # 计算耗时
        ut = time.time() - beginTime
        print("函数耗时: %s 秒" % int(ut))
        return res

    return execFunc


# 使用函数装饰器
@useTime
def test():
    time.sleep(3)
    print("test func run ok")

# ------------------------- 运行 ------------------------- 
if __name__ == '__main__':
    test()

参考链接:

Python装饰器详解-CSDN博客

【python】装饰器超详细教学,用尽毕生所学给你解释清楚,以后再也不迷茫了!_哔哩哔哩_bilibili

相关推荐
爱吃苹果的梨叔3 分钟前
2026年分布式坐席系统怎么选:指挥中心与调度大厅指南
python
小白学大数据3 分钟前
全站链接深度爬取:Python GUI 事件绑定 + 运行时动态过滤实现思路
开发语言·爬虫·python
zhangfeng11339 分钟前
超算/曙光DCU集群 昆山站 htc /public 目录全解
人工智能·python·机器学习
Maydaycxc9 分钟前
Excel/WPS 自动化实战:科学计数法、千张表格循环处理、打包交付的多工具对比
python·自动化·excel·wps·rpa
py小王子9 分钟前
Nature 期刊图复刻|带内嵌边缘密度的多组时序回归拟合图
python·nature·期刊图片复现
玫幽倩10 分钟前
2026盘古石取证决赛(手机取证)
python·电子取证·计算机取证·聊天软件·手机取证·fic
TechWayfarer11 分钟前
IP精准定位服务接入实战:广告投放如何用位置数据做定向策略
python·网络协议·tcp/ip·flask
开源量化GO13 分钟前
2026年期货量化主流工具期货与期权程序化选型:统一维护能力对照
python
赶在日落之前17 分钟前
使用conda-pack打包完整 Python 环境 + 依赖包,传到无网机器解压即用
开发语言·人工智能·python
HappyAcmen23 分钟前
8.角色 Prompt 模板
开发语言·python·prompt