Python装饰器 Python装饰器用法示例小结
快递小可 人气:0想了解Python装饰器用法示例小结的相关内容吗,快递小可在本文为您仔细讲解Python装饰器的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Python,装饰器,下面大家一起来学习吧。
本文实例讲述了Python装饰器用法。分享给大家供大家参考,具体如下:
下面的程序示例了python装饰器的使用:
示例一:
def outer(fun): print fun def wrapper(arg): result=fun(arg) print 'over!' return result return wrapper @outer def func1(arg): print 'func1',arg return 'very good!' response=func1('python') print response print func1
运行结果:
<function func1 at 0x02A67D70> func1 python over! very good! <function wrapper at 0x02A67CF0>
示例二:
#!/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模式下运行,查看程序一步一步的运行轨迹。。。
希望本文所述对大家Python程序设计有所帮助。
加载全部内容