import time, functools
def metric(fn):
@functools.wraps(fn)
def wapper(*args, **kw):
start = time.time()
fn(*args, **kw)
end = time.time()
print('%s executed in %s ms' % (fn.__name__, end - start))
return fn(*args, **kw)
return wapper
这样写不会导致函数被执行两次莫
对啊,打印时间并且返回结果需要执行一次,后面条件判断是否正确又需要执行一次返回正确结果。
Sign in to make a reply
星辰德法
import time, functools
def metric(fn):
@functools.wraps(fn)
def wapper(*args, **kw):
start = time.time()
fn(*args, **kw)
end = time.time()
print('%s executed in %s ms' % (fn.__name__, end - start))
return fn(*args, **kw)
return wapper