Python装饰器:优雅增强函数功能

简介: Python装饰器:优雅增强函数功能

Python装饰器:优雅增强函数功能

在日常开发中,我们经常需要在不修改原函数代码的情况下,为函数添加新功能——比如日志记录、性能测试、权限校验等。Python装饰器正是为此而生的优雅解决方案。

简单装饰器示例

def timer_decorator(func):
    def wrapper(*args, **kwargs):
        import time
        start = time.time()
        result = func(*args, **kwargs)
        end = time.time()
        print(f"{func.__name__} 执行耗时: {end-start:.2f}秒")
        return result
    return wrapper

@timer_decorator
def calculate_sum(n):
    return sum(range(n))

calculate_sum(1000000)  # 自动输出执行时间

装饰器的工作原理

装饰器本质上是一个高阶函数,它接收一个函数作为参数,并返回一个新的函数。@语法糖让代码更加简洁清晰。

进阶用法

  • 带参数的装饰器:通过嵌套函数实现
  • 类装饰器:通过实现__call__方法
  • 多个装饰器叠加:从下往上依次执行

装饰器是Python元编程的重要体现,掌握它能让你写出更加模块化、可维护的代码。它不仅减少了重复代码,还让功能增强与核心逻辑清晰分离。

记住:装饰器应保持透明,不改变原函数的调用方式和返回值特性,这才是好的装饰器设计。

目录
相关文章
|
11天前
|
数据处理 开发者 Python
Python 3.12 新特性解读:用 Subinterpreters 突破 GIL 限制
Python 3.12 新特性解读:用 Subinterpreters 突破 GIL 限制
261 137
|
29天前
|
SQL 安全 网络安全
从黑客视角看SQL注入:你的数据真的安全吗?
从黑客视角看SQL注入:你的数据真的安全吗?
231 138
|
7天前
|
数据采集 API 数据处理
Python异步编程:告别阻塞,拥抱高效
Python异步编程:告别阻塞,拥抱高效
197 136
|
29天前
|
SQL 安全 数据库
SQL注入:从登录框到数据泄露的十分钟
SQL注入:从登录框到数据泄露的十分钟
217 140
|
7天前
|
监控 测试技术 Python
优雅的Python装饰器:让代码更简洁高效
优雅的Python装饰器:让代码更简洁高效
196 137
|
7天前
|
Python
Python装饰器:给函数“穿外套”的优雅艺术
Python装饰器:给函数“穿外套”的优雅艺术
209 142
|
7天前
|
API 开发者 C++
用Python的FastAPI框架,5分钟搭建高性能API
用Python的FastAPI框架,5分钟搭建高性能API
223 139
|
22天前
|
Cloud Native Go 开发者
为什么 Go 成为云原生时代的首选语言?
为什么 Go 成为云原生时代的首选语言?
202 138
|
3天前
|
安全 数据库连接 数据库
掌握Python上下文管理器:优雅资源管理的艺术
掌握Python上下文管理器:优雅资源管理的艺术
197 155
|
7天前
|
Python
用Python装饰器优雅地为函数计时
用Python装饰器优雅地为函数计时
175 140