定义装饰器,获取斐波拉契数列被调用时函数执行耗用的时间
def w1(func):
def inner(*args,**kwargs):
start = time.time()
func(*args,**kwargs)
end = time.time()
cost = end - start
print cost,"####"
print func.func_name #获取被调用函数的名称
return inner
@w1
def fib1(n):
if n in [1,2]:
return 1
else:
return fib(n-1) +fib(n-2)
fib1(30)
执行结果:
0.239000082016 ####
fib1
测试结果显示:使用装饰器获取的时间比使用上下文所用的时间略微少一点;