python 装饰器

来源:互联网 发布:日程管理 知乎 编辑:程序博客网 时间:2024/05/18 03:48

1.简单装饰器

#coding=utf8def wrapper(func):    def proc(*args, **kwargs):        print "wrapper foo proc"        ret = func(*args, **kwargs)        return ret    return proc@wrapperdef foo():    print "foo run.."    return "func_foo_ret"print foo()

输出结果:

wrapper foo proc
foo run..
func_foo_ret

2. 装饰器带参数,及python解释执行顺序提现

#coding=utf8def wrapper(**kw):    print kw    def deco(func):        print "deco.."        def proc(*args, **kwargs):            print "wrapper foo proc"            ret = func(*args, **kwargs)            return ret        return proc    return deco@wrapper(name="bar", ex=5)def foo():    print "foo run.."    return "func_foo_ret"if __name__ == "__main__":    #print foo()    pass
输出结果:
{'name': 'bar', 'ex': 5}
deco.. foo


根据输出结果,这个模块引入的时候,被装饰器作用的函数已经被装饰器载入了


0 0
原创粉丝点击