# 按数字编号顺序看注释。 import time # 1.导入time模块 def calcu_time(f): # 2.定义函数和形参。 # 5.将test1作为实参传递给calcu_time函数的f形参。 def test_in(): # 6.定义函数。10.执行函数。 start = time.time() # 11.调用time模块的time()方法,把时间赋给start,记录开始时间。 f() # 12.调用函数,此时代表调用test1函数,(因为装饰器把test1函数作为实参传递给了形参f。) # 16.返回到函数调用f()处,继续往下执行代码。 end = time.time() # 17.调用time模块的time()方法,把时间赋给start,记录结束时间 print(f'时间差为{end-start}') # 18.打印输出时间差 return test_in # 7.将test_in作为值,返回到函数调用处test1位置, @calcu_time # 3.装饰器,等同于:test1 = calcu_time(test1),定义test1实参,并寻找。 # 13.装饰器接收test1函数调用指令,准备执行test1函数内部命令。 def test1(): # 4.定义函数,装饰器找到test1,返回到calcu_time()函数定义处。 # 8.将test_in作为值给test1。 sum_num = 0 # 14.赋值变量为0,并计算和值。 for num in range(1, 1000001): # 15.循环求和,并打印输出,如下代码 sum_num = sum_num + num print(f'和为{sum_num}') test1() # 9.调用函数,此时代表调用test_in函数。 # 19.返回到函数调用处,程序结束。