您的位置:首页 > 编程语言 > Python开发

python装饰器 示例2

2016-08-31 17:07 288 查看
下面的程序示例了python装饰器的使用:

#!/usr/bin/env python
#coding:utf-8
def 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 outer

def before(request,kargs):
print request,kargs,'之前!'

def after(request,kargs):
print request,kargs,'之后!'

@Filter(before,after)
def main(request,kargs):
print request,kargs

main('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模式下运行,查看程序一步一步的运行轨迹。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: