为了账号安全,请及时绑定邮箱和手机立即绑定

不懂t1,t2是怎么来的?

import time
def performance(f):
    def fn(*args, **kw):
        t1 = time.time()
        r = f(*args, **kw)
        t2 = time.time()
        print 'call %s() in %fs' % (f.__name__, (t2 - t1))
        return r
    return fn

@performance
def factorial(n):
    return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)

为啥t1是函数调用开始的时间,t2就函数调用结束的时间???


正在回答

2 回答

函数执行是逐行执行,一行执行完再执行下一行。比如记录100米跑步的时间,发令枪响(t1),计时开始,然后跑步,越过终点线,计时结束(t2)。你跑步所用的时间在这里就t2 -t1。


1 回复 有任何疑惑可以回复我~

当执行到fn这个函数时,第一步执行 t1 = time.time(),就相当于设置了一个断点,然后 第二步 就是执行f函数,并将结果返回给r,这一步 就是执行f函数所需要的时间,最后 第三步 执行t2 = time.time() ,即又设置了一个断点。两个断点的时间差 就是第二步所消耗的时间啊


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

不懂t1,t2是怎么来的?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信