请问有人能帮我解析一下这段代码吗?
请问有人能帮我解析一下这段代码吗?
中间有好多都看不懂
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
请问有人能帮我解析一下这段代码吗?
中间有好多都看不懂
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
2017-09-14
第一行,导入模块time
第二行,定义一个叫performance的函数,接收一个参数
第三行,定义一个函数,接收任何参数
第四行,调用time模块的time方法,得到系统当前时间的时间戳
第五行,调用函数f,这个f函数就是传递给performance函数的参数,且f函数接收任何参数
第六行,再次调用time模块的time方法,获得当前时间的时间戳
第七行,打印调用的函数名,和调用函数的前后时间差(用到了字符串的占位符,可看一下python中的格式化字符串)
第八行,返回f函数的调用结果
第九行,返回新定义的函数fn
综上:函数performance接收一个函数作为参数,对这个函数进行包装,返回一个新函数
举报