‘‘‘
高阶函数:
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()