Python装饰器用法示例小结

 更新时间:2018年02月11日 09:34:12   作者:快递小可  
这篇文章主要介绍了Python装饰器用法,结合实例形式总结分析了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相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Python pyecharts Boxplot箱线图的实现

    Python pyecharts Boxplot箱线图的实现

    本文主要介绍了Python pyecharts Boxplot箱线图的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Python入门_学会创建并调用函数的方法

    Python入门_学会创建并调用函数的方法

    下面小编就为大家带来一篇Python入门_学会创建并调用函数的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Python中利用mpld3创建交互式Matplotlib图表的代码示例

    Python中利用mpld3创建交互式Matplotlib图表的代码示例

    mpld3 是一个 Python 库,它将 Matplotlib 图表转换为 D3.js(JavaScript 绘图库)可解释的格式,从而实现了在浏览器中显示并交互的功能,在本文中,我们将介绍如何使用 mpld3 在 Python 中创建交互式 Matplotlib 图表,并提供代码示例,需要的朋友可以参考下
    2024-05-05
  • Python Fire中两种命令行参数灵活设置方式详解

    Python Fire中两种命令行参数灵活设置方式详解

    Python的Fire库,一个用来生成命令行工具的的库,这篇文章主要针对命令行参数,补充两种更加灵活的设置方式,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • python中defaultdict方法的使用详解

    python中defaultdict方法的使用详解

    这篇文章主要介绍了python中defaultdict方法的使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • 用Python实现协同过滤的教程

    用Python实现协同过滤的教程

    这篇文章主要介绍了用Python实现协同过滤的教程,主要用于从大数据中抽取用户信息偏好等等,需要的朋友可以参考下
    2015-04-04
  • python uuid生成唯一id或str的最简单案例

    python uuid生成唯一id或str的最简单案例

    这篇文章主要介绍了python uuid生成唯一id或str的最简单案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 如何利用Python让Excel快速按条件筛选数据

    如何利用Python让Excel快速按条件筛选数据

    平时总是要对Excel进行操作,整理了一下平时经常会用到的操作,下面这篇文章主要给大家介绍了关于如何利用Python让Excel快速按条件筛选数据的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • python实现scrapy爬虫每天定时抓取数据的示例代码

    python实现scrapy爬虫每天定时抓取数据的示例代码

    这篇文章主要介绍了python实现scrapy爬虫每天定时抓取数据的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • python爬虫beautiful soup的使用方式

    python爬虫beautiful soup的使用方式

    这篇文章主要介绍了python爬虫beautiful soup的使用方式,Beautiful Soup依据给定的解释器来解析html文档,其依据html中标签把html文档在内存中转化为类似于二叉树的数据结构,并通过实现的查询方法来查询二叉树以得到我们想要的爬虫数据
    2022-08-08

最新评论