python装饰器 示例2

来源:互联网 发布:淘宝卖家版手机版 编辑:程序博客网 时间:2024/04/29 20:29

下面的程序示例了python装饰器的使用:

#!/usr/bin/env python#coding:utf-8def Filter(before_func,after_func):    print before_func    print after_func    def outer(main_func):        print 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 outerdef before(request,kargs):    print request,kargs,'之前!'def after(request,kargs):    print request,kargs,'之后!'@Filter(before,after)def main(request,kargs):    print request,kargsmain('hello','python')print main
运行结果:

<function before at 0x02AC7BF0>
<function after at 0x02AC7C30>
<function main at 0x02AC7CF0>
hello python 之前!
hello python
hello python 之后!
<function wrapper at 0x02AC7D30>

我们可以加上很多断点,在Debug模式下运行,查看程序一步一步的运行轨迹。。。




1 0
原创粉丝点击