包装器举例 1

来源:互联网 发布:为什么淘宝店铺进不去 编辑:程序博客网 时间:2024/05/16 00:53
    
    import functools
    def spamrun(fun):        #@functools.wraps(fun)        def sayspam(*args,**kwargs):            print '2 => target1:%s,%s,%s'%(fun.__name__,args,kwargs)            ret =  fun(*args)            print '4 =>'            return ret        return sayspam        def spamrun2(fun):        #@functools.wraps(fun)        def sayspam(*args,**kwargs):            print '1 =>  target2:%s,%s,%s'%(fun.__name__,args,kwargs)            ret = fun(*args)            print '5 =>  '            return ret        return sayspam        def simple(fun):        print u'执行simple 简单装饰' + fun.__name__        return fun            #@pack    #@simple    @spamrun2    @spamrun    def useful(*args,**kwargs):        print u'3 =>执行useful函数',args
    #上面的包装器等同于下面的调用,结果一致    #useful = spamrun2(spamrun(useful))    useful(1,2,3)
输出 
1 =>  target2:sayspam,(1, 2, 3),{}2 => target1:useful,(1, 2, 3),{}3 =>执行useful函数 (1, 2, 3)4 =>5 =>  
</pre><pre code_snippet_id="599387" snippet_file_name="blog_20150206_3_7287509" name="code" class="python">

0 0
原创粉丝点击