Python装饰器,代码优雅加倍!不碰原代码,新功能轻松加

作者:佚名 时间:2025-12-23 12:59

字号

Python装饰器:让代码优雅加倍

装饰器(Decorator)是Python中最优雅的特性之一,它允许我们在不修改原函数代码的情况下,为函数添加新功能。这种基于闭包的高阶函数应用,完美体现了Python的“优雅明确”哲学。

什么是装饰器?

装饰器本质上是一个接收函数作为参数,并返回一个新函数的可调用对象。通过@decorator语法糖,我们可以轻松地将装饰器应用到目标函数上。

实践示例

import time
from functools import wraps
def timer_decorator(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        print(f"{func.__name__} 执行耗时: {time.time()-start:.2f}秒")
        return result
    return wrapper
@timer_decorator
def process_data(n):
    """模拟数据处理函数"""
    return sum(i*i for i in range(n))
# 调用被装饰的函数
result = process_data(1000000)

装饰器的妙用

除了性能监控,装饰器还常用于:

通过@functools.wraps保留原函数的元信息,我们的装饰器会更加完善。装饰器的链式调用(多个装饰器堆叠)和带参数装饰器进一步扩展了其应用场景。

掌握装饰器不仅能让代码更加简洁,更是迈向Python高级编程的重要一步。它体现了“关注点分离”的设计思想,让业务逻辑与横切关注点优雅解耦。

责任编辑:CQITer新闻报料:400-888-8888   本站原创,未经授权不得转载
继续阅读
热新闻
推荐
关于我们联系我们免责声明隐私政策 友情链接