Python装饰器用法示例小结


Posted in Python onFebruary 11, 2018

本文实例讲述了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 相关文章推荐
Python open读写文件实现脚本
Sep 06 Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
May 06 Python
Python socket网络编程TCP/IP服务器与客户端通信
Jan 05 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
Nov 15 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
Jan 02 Python
pandas Dataframe行列读取的实例
Jun 08 Python
TensorFlow Session使用的两种方法小结
Jul 30 Python
django一对多模型以及如何在前端实现详解
Jul 24 Python
python 有效的括号的实现代码示例
Nov 11 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
Apr 16 Python
jupyter 使用Pillow包显示图像时inline显示方式
Apr 24 Python
Python中生成ndarray实例讲解
Feb 22 Python
python PyTorch预训练示例
Feb 11 #Python
TensorFlow中权重的随机初始化的方法
Feb 11 #Python
python的staticmethod与classmethod实现实例代码
Feb 11 #Python
Python语言的变量认识及操作方法
Feb 11 #Python
利用Opencv中Houghline方法实现直线检测
Feb 11 #Python
tensorflow输出权重值和偏差的方法
Feb 10 #Python
详解tensorflow实现迁移学习实例
Feb 10 #Python
You might like
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
JavaScript 布尔操作符解析  &amp;&amp; || !
2012/08/10 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
深入理解JS中的变量及作用域、undefined与null
2014/03/04 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
JS制作图形验证码实现代码
2020/10/19 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
Python3 入门教程 简单但比较不错
2009/11/29 Python
Python中用于计算对数的log()方法
2015/05/15 Python
Python中逗号的三种作用实例分析
2015/06/08 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
python实现计数排序与桶排序实例代码
2019/03/28 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
安全生产责任书范本
2014/04/15 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
技术入股合作协议书
2014/10/07 职场文书
鉴史问廉观后感
2015/06/10 职场文书
2019个人半年工作总结
2019/06/21 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
react合成事件与原生事件的相关理解
2021/05/13 Javascript