解释一下python的装饰器,举个例子
时间: 2023-09-24 17:05:34 浏览: 42
Python的装饰器是一种能够在不修改源代码的情况下,对函数或类进行扩展或修改的语法。它是一种函数或类,接收另一个函数或类作为参数,然后执行一些操作,最后返回修改后的函数或类。
举个例子,假设我们有一个函数需要记录其执行时间:
```python
import time
def func():
start_time = time.time()
# do something...
end_time = time.time()
print(f"Function took {end_time - start_time} seconds to execute.")
```
但是这个实现方式非常繁琐,我们可以使用装饰器来简化它:
```python
import time
def timer_decorator(func):
def wrapper():
start_time = time.time()
func()
end_time = time.time()
print(f"Function took {end_time - start_time} seconds to execute.")
return wrapper
@timer_decorator
def func():
# do something...
func()
```
我们定义了一个名为`timer_decorator`的装饰器函数,它接收一个函数`func`作为参数,并返回一个新的函数`wrapper`,在`wrapper`中我们记录了函数执行前后的时间并输出时间差。最后,我们使用`@timer_decorator`将`func`函数改造成了一个新的函数,该新函数已经被添加了计时功能。