Python装饰器

#!/usr/bin/env python
#coding:utf-8
   
def Before(*args,**kargs):
    print('before')
       
def After(*args,**kargs):
    print('after')
 
def Filter(before_func,after_func):
    def outer(main_func):
        def wrapper(*args,**kargs):              
            before_result = before_func(*args,**kargs)
            if(before_result != None):
                return before_result;
               
            main_result = main_func(*args,**kargs)
            if(main_result != None):
                return main_result;
               
            after_result = after_func(*args,**kargs)
            if(after_result != None):
                return after_result;
               
        return wrapper
    return outer
       
@Filter(Before, After)
def Index(*args,**kargs):
    print('index')

Index()

你可能感兴趣的:(Python装饰器)