python装饰器给函数前后添加开始计算结束计算
时间: 2023-07-07 08:23:25 浏览: 52
可以使用Python装饰器来给函数前后添加开始计算和结束计算的功能。以下是一个示例代码:
```python
import time
def calculate_time(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print("开始计算")
print("函数 {} 运行时间为:{} 秒".format(func.__name__, end - start))
print("结束计算")
return result
return wrapper
@calculate_time
def my_func(num):
result = 1
for i in range(1, num+1):
result *= i
return result
print(my_func(5))
```
在这个示例代码中,我们定义了一个装饰器 `calculate_time`,它接受一个函数作为参数。装饰器内部定义了一个新函数 `wrapper`,它在调用原始函数之前记录开始时间,在调用原始函数之后记录结束时间,并输出运行时间。最后,装饰器返回 `wrapper` 函数,替代原始函数。
我们通过在 `my_func` 函数定义前添加 `@calculate_time` 装饰器来给函数添加计时功能。当我们调用 `my_func` 函数时,装饰器会自动运行,记录运行时间并输出。