高阶函数-Day3
一、高阶函数
实现高阶函数有两个条件:
- 把一个函数名(函数即变量)当做实参传给另外一个函数
- 返回值中包含函数名
1、把一个函数名(函数即变量)当做实参传给另外一个函数
作用:在不修改被装饰函数源代码的情况下为其添加功能
import time def bar(): time.sleep(3) print("in the bar") def test1(func): print(func) #打印函数内存地址 start_time = time.time() func() #获取bar函数的运行时间 stop_time = time.time() print("the func run thr is %s"%(stop_time-start_time)) test1(bar) #将bar作为位置参数传递给func,函数调用方式被改变 #返回值 <function bar at 0x0000012EFFB80598> in the bar the func run thr is 3.0008089542388916
2、返回值中包含函数名
作用:不修改函数调用方式
import time def bar(): time.sleep(3) print("in the bar") def test1(func): print(func) start_time = time.time() func() #获取bar函数的运行时间 stop_time = time.time() print("the func run thr is %s"%(stop_time-start_time)) test1(bar) #将bar作为位置参数传递给func #返回值 <function bar at 0x000002AFDC7C0598> in the bar