课程
/后端开发
/Python
/python进阶
两个时间都在修饰器里,是怎么做到两个时间不在同一个时间点的。
2017-08-01
源自:python进阶 2-12
正在回答
def fn(*args,**kw): t1=time.time() r=f(*args,**kw) t2=time.time() print 'call %s() in %fs' % (f.__name__,(t2 - t1))
先记录t1时刻,接着执行调用r也就是f函数,调用完毕后,记录t2时刻,这样相减就是调用所用的时间啦
白白净净叫大星_03418722 提问者
猿子 回复 白白净净叫大星_03418722 提问者
Python 支持格式化字符串的输出 ,最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
print "My name is %s and weight is %d kg!" % ('Zara', 21)
回复 白白净净叫大星_03418722:
不用r直接调用f原函数也是一样的
def fn(*args,**kw):
t1=time.time()
f(*args,**kw)
t2=time.time()
print 'call %s() in %fs' % (f.__name__,(t2 - t1))
return f(*args,**kw)
f()就是下面的factorial(n),调用了一遍
@performance
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
慕侠5763135
冷月诗魂 回复 慕侠5763135
def performance(unit): def performance_decorator(f): def wrapper(*args,**kw): t1=time.time() r=f(*args,**kw) t2=time.time() t=(t2-t1)*1000 if unit=='ms'else (t2-t1) print 'call%s()in%f%s'%(f.__name__,t,unit) return r return wrapper return performance_decorator 定义那么函数,实际意义是什么呢
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计