使用装饰器获取被调用函数的执行的时间

定义装饰器,获取斐波拉契数列被调用时函数执行耗用的时间

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

测试结果显示:使用装饰器获取的时间比使用上下文所用的时间略微少一点;

原文地址:https://www.cnblogs.com/cqq-20151202/p/6595128.html