首页 > 编程 > Python > 正文

Python装饰器用法示例小结

2020-01-04 15:52:23
字体:
来源:转载
供稿:网友

本文实例讲述了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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表