Python装饰器

来源:互联网 发布:mac safari卡死 编辑:程序博客网 时间:2024/06/06 12:52
'''def foo():    print 'foo'  def foo():    print 'before do something'    print 'foo'    print 'after'  def foo():    print 'foo'     def wrapper(func):    print 'before'    func()    print 'after'      wrapper(foo)  def foo():    print 'foo'     def wrapper(func):    def result():        print 'before'        func()        print 'after'    return resultDo = wrapper(foo)Do()'''       def wrapper(func):    def result():        print 'before'        func()        print 'after'    return result @wrapperdef foo():    print 'foo' foo() 123456789101112131415161718192021222324252627282930313233343536 #!/usr/bin/env python#coding:utf-8 def Before(request,kargs):    print 'before'     def After(request,kargs):    print 'after'  def Filter(before_func,after_func):    def outer(main_func):        def wrapper(request,kargs):                         before_result = before_func(request,kargs)            if(before_result != None):                return before_result;                         main_result = main_func(request,kargs)            if(main_result != None):                return main_result;                         after_result = after_func(request,kargs)            if(after_result != None):                return after_result;                     return wrapper    return outer     @Filter(Before, After)def Index(request,kargs):    print 'index'          if __name__ == '__main__':    Index(1,2) 

0 0
原创粉丝点击