手写wraps()虽然有点铁憨憨 ...但很有趣
import time def wraps(func_n): def decorator(func): def wrapper(*args, **kw) return func(*args, **kw) wrapper.__name__ = func_n.__name__ return wrapper return decorator def metric(func): @wraps(func) def wrapper(*args, **kw): t = time.time() r = func(*args, **kw) print(' executed in ' + str(time.time - t) + ' ms') return r return wrapper @metric def fast(x, y): time.sleep(0.0012) return x + y @metric def slow(x, y, z): time.sleep(0.1234) return x * y * z f = fast(11, 22) s = slow(11, 22, 33) if f != 33: print('测试失败') elif s != 7986: print('测试失败')
Sign in to make a reply
用户6604915248
手写wraps()虽然有点铁憨憨 ...但很有趣