装饰器
Posted Gringer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰器相关的知识,希望对你有一定的参考价值。
练习
请设计一个decorator,它可作用于任何函数上,并打印该函数的执行时间:
# -*- coding: utf-8 -*- import time, functools def metric(fn): @functools.wraps(fn) def wrapper(*args,**kwargs): t1=time.time() run=fn(*args, **kwargs) t2=time.time() print(‘%s executed in %s ms‘ % (fn.__name__,t2-t1)) return run 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(‘测试失败!‘)
以上是关于装饰器的主要内容,如果未能解决你的问题,请参考以下文章