可以将以上代码修改成可适用于任何函数吗?
时间: 2023-07-15 11:12:32 浏览: 39
可以使用Python的装饰器来实现将以上代码修改成可适用于任何函数的功能。装饰器是一个函数,它可以接受一个函数作为参数,并返回一个新的函数,新函数具有与原函数相同的名称和功能,但还具有装饰器的特定行为。
以下是一个装饰器示例,它可以记录函数的执行时间:
```python
import time
def timer(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:.5f} seconds to execute.")
return result
return wrapper
```
这个装饰器将接受一个函数作为参数,并返回一个新的函数`wrapper`。在`wrapper`函数内部,它会记录函数的开始时间和结束时间,并在函数执行完成后打印出函数的执行时间。然后它会返回函数的结果。
要在函数上使用这个装饰器,只需要在函数定义之前添加`@timer`装饰器即可,如下所示:
```python
@timer
def my_function():
# do something
```
这样,每次调用`my_function`时,它都会自动记录执行时间。您可以将`timer`装饰器应用于任何函数,而无需更改`timer`装饰器的代码。