题目
- 编写代码:编写装饰器函数,统计代码耗时情况
思路
- 这题没有难度,直接编写一个装饰器函数,将要统计的函数作为装饰器函数的参数,在装饰器函数开始时记录一个时间,作为开始时间,然后开始执行要统计的函数,执行完成后,再记录一个时间作为结束时间,然后结束时间减去开始时间,就统计出来了要统计的函数的执行时间。
代码
import time
def exec_time(func):
def wrapper(*args, **kwargs): #定义装饰
start_time = time.time() #记录函数开始时间戳
print("{fun}() start time:%s".format(fun = func.__name__) %start_time) #打印开始的时间戳
result = func(*args, **kwargs) #装饰器内部调用原函数
end_time = time.time() #记录函数结束时间戳
print("{fun}() end time:%s".format(fun = func.__name__) %end_time) #打印结束的时间戳
print("{fun}() execution time:%5.2f".format(fun = func.__name__) %(end_time - start_time))#统计原函数执行时间
return result #返回原函数执行结果
return wrapper #返回装饰器函数引用
@exec_time #装饰器配置
def timeFunc():
sum = 0 #定义变量,初始值为0
for i in range(999999): #遍历
sum += i #计算和
print("The sum is %s" %sum) #打印结果
if __name__ == "__main__":
timeFunc()