import time,functools
def log(test = None): def metric(fn): @functools.wraps(fn) def wrapper(args,**kw): print("begin call") start = time.time() result = fn(args,**kw) end = time.time() print('%s executed in %s ms' % (fn.name, end -start)) print ("end call") return result return wrapper return metric if isinstance(test,str) else metric(test)
@log
def fast(x, y): time.sleep(0.0012) return x + y;
@log('execute')
def slow(x, y, z): time.sleep(0.1234) return x y z;
Sign in to make a reply
白风之下
-- coding: utf-8 --
import time,functools
def log(test = None): def metric(fn): @functools.wraps(fn) def wrapper(args,**kw): print("begin call") start = time.time() result = fn(args,**kw) end = time.time() print('%s executed in %s ms' % (fn.name, end -start)) print ("end call") return result return wrapper return metric if isinstance(test,str) else metric(test)
测试
@log
def fast(x, y): time.sleep(0.0012) return x + y;
@log('execute')
def slow(x, y, z): time.sleep(0.1234) return x y z;