美文网首页
python装饰器

python装饰器

作者: morie_li | 来源:发表于2019-02-26 01:52 被阅读0次

    装饰器可以让其他函数在不需要做任何代码变动的前提下增加额外功能,它的返回值也是一个函数对象。
    实质: 是一个函数
    参数:是你要装饰的函数名(并非函数调用)
    返回:是装饰完的函数名(也非函数调用)
    作用:为已经存在的对象添加额外的功能
    特点:不需要对对象做任何的代码上的变动
    譬如,一个简单的装饰器:

    def decorator(func):
        def wrapper():
            print 'this is function: {}'.format(func.__name__)
            return func()
        return wrapper
    
    @decoration
    def say_hello():
        print 'hello!'
    

    在这个装饰器中,被装饰函数不需要带任何参数。如果被装饰的函数需要传入参数,则可使用可变参数(args)和关键字参数(kwargs),有了这两个参数,装饰器就可以用于任意目标函数了。
    一个计时的装饰器:

    import time
    def time_consuming(func):
        def wrapper(*args, **kwargs):
            t0 = time.time()
            back = func(*args, **kwargs)
            return back, time.time() - t0
        return wrapper
    
    @time_consuming
    def say_hello():
        print 'hello!'
    

    相关文章

      网友评论

          本文标题:python装饰器

          本文链接:https://www.haomeiwen.com/subject/iuloyqtx.html