python 装饰器 三 (带有参数的装饰器)

#接受装饰器的参数
def deco_arg(deco_arg):
    #接受函数 此列为func1
    def deco_func(*argv,**kwag):
        #接受函数的方法 此列为 a b
        def _deco_func(*argv,**kwarg):
            print "before -------执行函数前"
            print "%s     -------打印装饰器的参数"% deco_arg
            ret = deco_func(*argv,**kwarg)
            print "after  -------执行函数后"
            return ret
        return _deco_func
    return deco_func
@deco_arg('我是装饰器的参数')
def func1(a,b):
    print a
    print b
    return "ok"
func1('xixi','haha')
'''
执行结果
before -------执行函数前
我是装饰器的参数     -------打印装饰器的参数
after  -------执行函数后
'''
posted @ 2015-07-01 01:26  谢义学  阅读(358)  评论(0)    收藏  举报