Python装饰器
时间: 2023-07-06 09:03:59 浏览: 61
Python装饰器是一种特殊的函数,它可以接受一个函数作为参数,并返回一个新的函数。
装饰器可以用来修改或增强函数的行为,而不需要修改函数本身的代码。它可以在函数调用前后加入一些额外的逻辑,如日志记录、性能测试、缓存等。
装饰器的语法比较简单,通常使用@符号来标记:
```python
@decorator
def func():
pass
```
在这个示例中,`decorator`是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数。这个新的函数可以包含一些额外的逻辑,或者修改原始函数的行为。
下面是一个简单的装饰器示例,用于记录函数的执行时间:
```python
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"函数 {func.__name__} 的执行时间为: {end_time - start_time}")
return result
return wrapper
@timer
def my_func():
time.sleep(1)
my_func()
```
在这个示例中,`timer`是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数`wrapper`。这个新的函数包含了计时逻辑,以及调用原始函数的代码。通过使用`@timer`装饰器,我们可以方便地为任何函数添加计时功能。