解锁Python装饰器:让代码更优雅的魔法
在Python中,装饰器是一种强大而优雅的工具,它允许我们在不修改原始函数代码的情况下,为其添加新功能。这种“元编程”能力让Python代码更加简洁、可读。
装饰器到底是什么?
简单来说,装饰器就是一个函数,它接收一个函数作为参数,并返回一个新的函数。这种模式遵循“开放-封闭”原则:对扩展开放,对修改封闭。
def simple_decorator(func):
def wrapper():
print("函数执行前...")
func()
print("函数执行后...")
return wrapper
@simple_decorator
def say_hello():
print("Hello!")
say_hello()
实际应用场景
- 日志记录:自动记录函数调用信息
- 性能测试:计算函数执行时间
- 权限验证:检查用户是否有权访问某些功能
- 数据验证:验证函数输入参数的有效性
带参数的装饰器
更高级的装饰器还可以接收参数,这需要额外封装一层:
def repeat(n):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(n):
result = func(*args, **kwargs)
return result
return wrapper
return decorator
@repeat(3)
def greet(name):
print(f"Hello, {name}!")
装饰器是Python的高级特性之一,掌握它能让你写出更加专业、可维护的代码。从简单的日志装饰器开始练习,你会逐渐发现它在项目中的无限可能。