使用装饰器,用于源代码插桩法的函数,以测量其时间 def some_function(n): total = 0 for i in range(n): total +
时间: 2024-09-23 14:16:47 浏览: 82
C/C++/Linux函数函数插桩(打桩)指南
5星 · 资源好评率100%
装饰器是一种特殊类型的函数,它允许我们修改其他函数的功能,而无需直接更改它们的原始代码。在Python中,我们可以使用装饰器来插入额外的行为,如日志、性能分析或计时功能。对于你的例子,如果你想测量`some_function`的时间消耗,你可以创建一个装饰器来完成这个任务:
```python
import time
def timer_decorator(func):
def wrapper(n):
start_time = time.time()
result = func(n)
end_time = time.time()
print(f"Function {func.__name__} took {end_time - start_time} seconds to execute.")
return result
return wrapper
@timer_decorator
def some_function(n):
total = 0
for i in range(n):
total += i
return total
```
在这个装饰器中,`wrapper`函数会在执行`some_function`前记录开始时间,在执行完毕后计算并打印运行时间。现在当你调用`some_function(n)`时,实际执行的是被装饰过的版本,并且会自动显示出时间信息。
阅读全文