#author: MR_luo
#data 2019.8.20
import time
#装饰器函数
def show_time(f):
def inner():
start=time.time()
f() #注意闭包
end = time.time()
print ('spend %s'% (end-start))
return inner
#原功能函数
@show_time #bar=show_time(bar)
def bar():
print('bar....')
time.sleep(3)
@show_time #foo=show_time(foo)
def foo():
print('foo....')
time.sleep(3)
bar()
foo()
输出:
bar....
spend 3.0002379417419434
foo....
spend 3.000044107437134
改进:
1.原先函数简化了。
2.原先函数中重复的部分被修饰器给替代。