Python 装饰器实战:用@syntax 优雅地增强函数功能

Python 装饰器实战:用@syntax 优雅地增强函数功能

什么是装饰器?

装饰器(Decorator)是 Python 中的一种高级特性,它允许你在不修改原函数代码的情况下,动态地给函数添加功能。简单来说,装饰器就是一个"包装器",它包裹住你的函数,在函数执行前后添加额外的逻辑。

基础语法

```python

def my_decorator(func):

def wrapper(*args, **kwargs):

print("函数执行前...")

result = func(*args, **kwargs)

print("函数执行后...")

return result

return wrapper

@my_decorator

def say_hello(name):

print(f"Hello, {name}!")

say_hello("二狗")

```

输出:

```

函数执行前...

Hello, 二狗!

函数执行后...

```

实战:计时装饰器

```python

import time

from functools import wraps

def timer_decorator(func):

@wraps(func)

def wrapper(*args, **kwargs):

start = time.time()

result = func(*args, **kwargs)

end = time.time()

print(f"{func.name} 执行耗时:{end - start:.4f}秒")

return result

return wrapper

@timer_decorator

def slow_function():

time.sleep(1)

print("任务完成")

slow_function()

```

带参数的装饰器

```python

def repeat(times):

def decorator(func):

@wraps(func)

def wrapper(*args, **kwargs):

for _ in range(times):

func(*args, **kwargs)

return wrapper

return decorator

@repeat(3)

def greet(name):

print(f"Hi, {name}!")

greet("老板")

```

总结

装饰器是 Python 中最优雅的特性之一,广泛应用于:

  • 日志记录

  • 性能测试

  • 权限验证

  • 缓存机制

  • 事务处理

掌握装饰器,让你的代码更加 Pythonic!

相关推荐
无足鸟ICT10 分钟前
【RHCA+】bash命令
linux·开发语言·bash
简~76816 分钟前
python for in循环不能遍历整数怎么解决
python·大学生
aiqianji34 分钟前
垂直专业的AI短篇小说写作软件有哪些特点?
人工智能·python
方华世界1 小时前
企业级Java AI Agent应用平台
java·开发语言·人工智能
aqi001 小时前
15天学会AI应用开发(十三)上下文与RAG的阶段性总结
人工智能·python·大模型·ai编程·ai应用
程序员杰哥1 小时前
接口测试知识总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
大海变好AI1 小时前
专业的智能体算力架构高性价比品牌公司
python
ujainu小1 小时前
原生性能优化:6变量实现高效桥接
开发语言·华为·性能优化·harmonyos
甄同学1 小时前
第十七篇:Bash Executor命令执行器,安全运行Shell命令
开发语言·安全·bash