时间:2021-05-22
本文实例讲述了Python装饰器用法。分享给大家供大家参考,具体如下:
下面的程序示例了python装饰器的使用:
示例一:
def outer(fun): print fun def wrapper(arg): result=fun(arg) print 'over!' return result return wrapper@outerdef func1(arg): print 'func1',arg return 'very good!'response=func1('python')print responseprint func1运行结果:
<function func1 at 0x02A67D70>func1 pythonover!very good!<function wrapper at 0x02A67CF0>示例二:
#!/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 pythonhello python 之后!<function wrapper at 0x02AC7D30>我们可以加上很多断点,在Debug模式下运行,查看程序一步一步的运行轨迹。。。
更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Python装饰器用法。分享给大家供大家参考,具体如下:用类作为装饰器示例一最初代码:classbol(object):def__init__(s
本文实例讲述了Python装饰器用法。分享给大家供大家参考,具体如下:无参数的装饰器#coding=utf-8deflog(func):defwrapper()
本文实例讲述了Python装饰器用法与知识点。分享给大家供大家参考,具体如下:(1)装饰器含参数,被装饰函数不含(含)参数实例代码如下:importtime#装
本文实例讲述了python类装饰器用法。分享给大家供大家参考。具体如下:#!coding=utf-8registry={}defregister(cls):re
装饰器这东西我看了一会儿才明白,在函数外面套了一层函数,感觉和java里的aop功能很像;写了2个装饰器日志的例子,第一个是不带参数的装饰器用法示例,功能相当于