在不修改函数源代码的情况下,给函数增加统计执行时间的功能 1. 在这个例子中,我们定义了一个名为time_it的装饰器函数,该函数接收一个函数作为参数,并返回一个新的函数wrapper。 2. 在wrapper函数内部,我们记录了函数执行的开始和结束时间,并计算出函数的执行时间。 最后,我们输出了函数的执行时间,并将函数的结果返回。
import time
# 定义装饰器函数
def time_it(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
print("调用后————————")
end_time = time.time()
print("函数 {0} 执行时间为 {1:.2f} 秒".format(func.__name__, end_time - start_time))
return result
return wrapper
然后,使用@time_it装饰器语法来修饰原函数my_function(),让它具备了统计执行时间的功能。 最后,我们调用修饰后的函数my_function(),得到了函数的执行时间。
# 使用装饰器修饰函数
@time_it
def my_function():
for i in range(1000000):
pass
# 调用修饰后的函数
my_function()
程序运行结果:
调用后————————
函数 my_function 执行时间为 0.03 秒