一、装饰器:代表函数(完成特定功能)
1,原则:不能修改被装饰函数源代码,不能修改被装饰的函数调用方式
2.方法:
函数即变量:函数作为一个变量
高阶函数:把函数名当实参传给另一个函数或者返回值中包含函数名
切套函数:函数加函数
例如:
变量先定义-------后调用(只要调用之前存在就能调用)
例如:
定义test1,把函数体放入内存当中,指向test函数名
例如:
需求:在不改变源码和调用方式情况下,新增统计运行时间
def te():
time.sleep(3)
print('te')
#高阶函数
def test1(fun):
start_time=time.time() #当前时间
fun() #运行te函数(把te传给了fun---fun=te-----fun()te函数可以像变量一样赋值)
stop_time=time.time() #结束时间
print("the fun run time is %s" %(stop_time-start_time))
return fun
te=test1(te)#不改变函数调用方式
te()
结果:te
the fun run time is 3.00032901763916