讲一下python装饰器
时间: 2023-08-21 18:15:38 浏览: 42
Python装饰器是一种用于修改函数或类的行为的语法形式。它们允许您在不修改原始代码的情况下增强现有函数或类的功能。
装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数。这个新函数通常会在原始函数执行之前或之后执行一些额外的代码,或者完全替代原始函数。
装饰器使用了Python的语法糖,即在被装饰的函数或类定义之前使用`@`符号。这样,装饰器就会应用于该函数或类。
下面是一个简单的装饰器示例,它会在函数执行之前打印一条消息:
```python
def decorator_func(original_func):
def wrapper_func():
print("Before executing the function")
original_func()
print("After executing the function")
return wrapper_func
@decorator_func
def hello():
print("Hello, World!")
hello()
```
在上面的例子中,`decorator_func`是一个装饰器函数,它接受一个函数作为参数,并返回一个新的包装函数`wrapper_func`。`wrapper_func`打印一条消息,然后调用原始函数`original_func`。最后,我们使用`@decorator_func`将装饰器应用于`hello`函数。
当我们调用`hello()`时,输出将是:
```
Before executing the function
Hello, World!
After executing the function
```
通过使用装饰器,我们可以在不修改`hello`函数代码的情况下,在其执行前后添加额外的功能。这使得装饰器成为Python中非常有用的功能扩展机制。