Python装饰器:优雅地增强函数功能
在Python中,装饰器是一种强大的语法特性,允许我们在不修改原函数代码的情况下增加新功能。装饰器本质上是一个接受函数作为参数并返回新函数的高阶函数。
def simple_decorator(func):
def wrapper():
print("函数执行前")
func()
print("函数执行后")
return wrapper
@simple_decorator
def say_hello():
print("Hello!")
say_hello()
上述代码输出:
函数执行前
Hello!
函数执行后
装饰器的常见应用场景包括:
- 日志记录
- 性能测试(计时)
- 权限验证
- 缓存机制
使用functools.wraps可以保留原函数的元信息:
from functools import wraps
def advanced_decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
装饰器让代码更加简洁优雅,避免了重复代码,是Python编程中值得掌握的重要特性。