掌握Python装饰器:轻松统计函数执行时间

简介: 掌握Python装饰器:轻松统计函数执行时间

掌握Python装饰器:轻松统计函数执行时间

装饰器是Python中强大而优雅的功能,允许在不修改原函数代码的情况下增强其行为。今天,我们用一个实用例子——统计函数执行时间,来展示它的魅力。

核心代码:时间统计装饰器

import time
from functools import wraps

def timer_decorator(func):
    @wraps(func)  # 保留原函数的元信息
    def wrapper(*args, **kwargs):
        start_time = time.perf_counter()  # 高精度计时开始
        result = func(*args, **kwargs)    # 执行原函数并获取结果
        end_time = time.perf_counter()    # 计时结束
        elapsed = end_time - start_time
        print(f"函数 {func.__name__} 执行耗时: {elapsed:.4f} 秒")
        return result  # 返回原函数结果
    return wrapper

使用装饰器

@timer_decorator
def add_numbers(a, b):
    time.sleep(0.5)  # 模拟耗时操作
    return a + b

# 调用函数,自动计时
sum_result = add_numbers(3, 4)
print(f"计算结果: {sum_result}")

输出示例:

函数 add_numbers 执行耗时: 0.5008 秒
计算结果: 7

关键点解析:

  1. @wraps:保留原函数的名称和文档,避免调试混淆
  2. `*args, kwargs`**:确保装饰器通用,适配任何函数参数
  3. time.perf_counter():使用高精度计时器,结果更准确
  4. 返回结果:内部函数需返回原函数的执行结果,保持调用逻辑不变

进阶提示:此装饰器可轻松复用于其他函数,只需添加@timer_decorator即可获得计时能力。还可扩展功能,如将时间记录到日志文件或设置阈值报警。

装饰器将横切关注点(如日志、计时)与核心逻辑分离,大幅提升代码可维护性。立即尝试用它优化你的项目吧!

目录
相关文章
|
5天前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
181 101
|
12天前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
162 99
|
12天前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
143 98
|
17天前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
26天前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
2月前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
159 92
|
5天前
|
缓存 测试技术 Python
解锁Python超能力:深入理解装饰器
解锁Python超能力:深入理解装饰器
46 2
|
1月前
|
设计模式 缓存 运维
Python装饰器实战场景解析:从原理到应用的10个经典案例
Python装饰器是函数式编程的精华,通过10个实战场景,从日志记录、权限验证到插件系统,全面解析其应用。掌握装饰器,让代码更优雅、灵活,提升开发效率。
92 0
|
11月前
|
Python
深入理解Python装饰器:从入门到实践####
本文旨在通过简明扼要的方式,为读者揭开Python装饰器的神秘面纱,从基本概念、工作原理到实际应用场景进行全面解析。不同于常规的摘要仅概述内容概要,本文将直接以一段精炼代码示例开篇,展示装饰器如何优雅地增强函数功能,激发读者探索兴趣,随后深入探讨其背后的机制与高级用法。 ####
129 11

推荐镜像

更多