高阶函数:
1 把一个函数名当作实参传递给另外一个函数 (在不修改被装饰函数源代码情况下, 为其添加功能)
2 返回值中包含函数名
- import time
- # 为 bar 函数添加计时功能
- # def foo(func):
- # start_time = time.time()
- # func()
- # finish_time = time.time()
- # print("the bar function has run %s" % (finish_time-start_time))
- # def bar():
- # time.sleep(3)
- # print("in the bar")
- # #实现了新功能, 没有修改 bar 的源代码, 但是调用方式改变了
- # foo(bar)
- # 以函数返回值的形式, 为 bar 函数添加计时功能
- def foo(func):
- start_time = time.time()
- func()
- finish_time = time.time()
- print("the bar function has run %s" % (finish_time-start_time))
- return func
- def bar():
- time.sleep(3)
- print("in the bar")
- # 不改变 bar 函数的调用方法为其添加功能
- bar = foo(bar)
- bar()
高阶函数
来源: http://www.bubuko.com/infodetail-2538023.html