装饰模式Python
时间: 2023-06-29 20:09:40 浏览: 96
python 实现 装饰模式
装饰器模式是一种设计模式,它允许在不修改现有代码的情况下向对象添加新的行为或功能。在Python中,装饰器是一个函数,它接受另一个函数作为参数,并返回一个新的函数,该函数包装了原始函数并添加了新的行为。
下面是一个简单的示例,演示如何使用装饰器模式:
```python
def my_decorator(func):
def wrapper():
print("Before the function is called.")
func()
print("After the function is called.")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
```
在这个示例中,`my_decorator` 是装饰器函数,它接受一个函数作为参数并返回一个新的函数 `wrapper`。`wrapper` 函数包装了原始函数 `say_hello` 并添加了新的行为。`@my_decorator` 语法表示 `say_hello` 函数将被 `my_decorator` 装饰。
当 `say_hello()` 被调用时,它实际上调用了 `wrapper()` 函数。 `wrapper()`函数首先打印 "Before the function is called.",然后调用原始函数 `say_hello()`,最后打印 "After the function is called."。
这就是装饰器模式的基本工作原理。可以使用装饰器来实现各种功能,例如日志记录、性能测试、缓存和授权检查等。
阅读全文