设计一个能记录函数运行时间的装饰器
时间: 2023-12-07 14:03:39 浏览: 28
可以使用Python的装饰器语法来实现一个记录函数运行时间的装饰器,如下所示:
```python
import time
def time_it(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:.6f} seconds to run.")
return result
return wrapper
```
该装饰器接受一个函数作为参数,并返回一个新函数。新函数在执行被装饰函数之前记录开始时间,执行被装饰函数,记录结束时间,计算函数运行时间,并输出该信息。最后返回被装饰函数的结果。使用该装饰器非常简单,只需要在需要记录运行时间的函数前加上 `@time_it` 即可。例如:
```python
@time_it
def my_function():
# do something
```
这样,每次调用 `my_function()` 时,都会输出函数运行时间。