decorater装饰器

带参数的decorator

import time

def performance(unit):
    def perf_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 perf_decorator

@performance('ms')  
def factorial(n):
    return reduce(lambda x,y: x*y, range(1, n+1))

print factorial(10)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pa...
    linheimx阅读 3,757评论 0 4
  • 本文为《爬着学Python》系列第四篇文章。从本篇开始,本专栏在顺序更新的基础上,会有不规则的更新。 在Pytho...
    SyPy阅读 7,198评论 4 11
  • 装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返...
    时间之友阅读 6,893评论 0 3
  • 装饰是为函数和类指定管理代码的一种方式.装饰器本身的形式是处理其他的可调用对象的可调用的对象。 函数装饰器在函数定...
    低吟浅唱1990阅读 1,693评论 0 0
  • 在一次盗墓行动中,我发现了一个宝贝。那是一把奇妙的钥匙,据说有了它就可以去到任意的时空中。 我本打算将它好好收...
    青柠薄荷糖阅读 1,256评论 0 0

友情链接更多精彩内容