python装饰器模式
时间: 2023-10-14 22:30:23 浏览: 43
装饰器模式是一种结构型设计模式,它允许在不改变对象的基本结构和功能的情况下,动态地添加行为或责任。
在 Python 中,装饰器模式通常使用函数装饰器来实现。函数装饰器是一个函数,它接收一个函数作为参数,并返回一个新的函数,这个新的函数可以包装原始函数并添加额外的行为。
以下是一个简单的示例,演示了如何使用装饰器模式来记录函数的运行时间:
```python
import time
def timing_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Function {func.__name__} took {end_time - start_time}s to run.")
return result
return wrapper
@timing_decorator
def my_function():
time.sleep(1)
my_function() # 输出:Function my_function took 1.0s to run.
```
在上面的示例中,`timing_decorator` 函数是一个装饰器,它接收一个函数作为参数,并返回一个新的函数 `wrapper`。`wrapper` 函数记录了函数的运行时间,并将结果返回给调用者。使用装饰器语法 `@timing_decorator`,我们可以方便地将装饰器应用到我们想要测量运行时间的函数上。
装饰器模式在 Python 中有很多应用场景,比如缓存、授权、日志记录等。它可以让我们在不改变现有代码结构的情况下,轻松地添加额外的功能和行为。