python_59_装饰器2
#匿名函数,无函数名 calc=lambda x:x*3 print(calc(3)) sum=lambda x,y,z:x+y+z print(sum(1,2,3)) ''' 高阶函数 a:把一个函数名当做一个实参传递给另一个函数(在不修改被饰函数源代码的情况下为其添加功能) b:返回值包含函数名(不修改函数的调用方式) ''' def bar(): print('in the bar') def test(func): print(func) #func() test(bar)#结果:bar的内存地址<function bar at 0x01DFCC90> print(bar) import time def bar1(): time.sleep(2) print('in the bar1') def test1(func): start_time=time.time() func()#运行bar1() stop_time=time.time() print('the func run time is %s'%(stop_time-start_time)) test1(bar1) import time def bar2(): time.sleep(1) print('in the bar2') def test2(func): print(func)#打印的是func的内存地址 print(func())#调用函数func,并且打印func函数的返回值 return func#返回func的内存地址 t=test2(bar2)#将test2函数的返回值赋值给t,即将bar2的内存地址赋给t t()#运行bar2函数 bar2=test2(bar2)#bar2被重新赋值 bar2()