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元编程的重要体现,掌握它能让你写出更加模块化、可维护的代码。它不仅减少了重复代码,还让功能增强与核心逻辑清晰分离。

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

目录
相关文章
|
2天前
|
数据处理 开发者 Python
Python 3.12 新特性解读:用 Subinterpreters 突破 GIL 限制
Python 3.12 新特性解读:用 Subinterpreters 突破 GIL 限制
235 137
|
20天前
|
SQL 安全 网络安全
从黑客视角看SQL注入:你的数据真的安全吗?
从黑客视角看SQL注入:你的数据真的安全吗?
222 138
|
26天前
|
缓存 监控 开发工具
用 Python 的 LRU Cache 优化函数性能
用 Python 的 LRU Cache 优化函数性能
228 143
|
20天前
|
SQL 安全 数据库
SQL注入:从登录框到数据泄露的十分钟
SQL注入:从登录框到数据泄露的十分钟
209 140
|
26天前
|
安全 IDE 开发工具
Python类型注解:让代码更清晰可维护
Python类型注解:让代码更清晰可维护
195 144
|
26天前
|
设计模式 监控 Python
Python装饰器:让代码优雅的“魔法工具箱”
Python装饰器:让代码优雅的“魔法工具箱”
197 134
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
超越规则:AI模型如何学会“思考”?
超越规则:AI模型如何学会“思考”?
205 142
|
26天前
|
缓存 监控 Python
Python装饰器:给代码穿上智能“外衣”
Python装饰器:给代码穿上智能“外衣”
184 134
|
13天前
|
Cloud Native Go 开发者
为什么 Go 成为云原生时代的首选语言?
为什么 Go 成为云原生时代的首选语言?
191 138
|
9天前
|
人工智能 自动驾驶 调度
AI模型轻量化:让智能在指尖绽放
AI模型轻量化:让智能在指尖绽放
178 137