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中的对象拷贝示例 python引用传递
Jan 23 Python
python关闭windows进程的方法
Apr 18 Python
Python中用sleep()方法操作时间的教程
May 22 Python
python虚拟环境virtualenv的使用教程
Oct 20 Python
PyQt5实现下载进度条效果
Apr 19 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
python实现大转盘抽奖效果
Jan 22 Python
Pandas操作CSV文件的读写实现方法
Nov 13 Python
postman和python mock测试过程图解
Feb 22 Python
Idea安装python显示无SDK问题解决方案
Aug 12 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
Jan 06 Python
Python3使用Selenium获取session和token方法详解
Feb 16 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中session与cookie的比较
2015/01/27 PHP
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
php计算年龄精准到年月日
2015/11/17 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
为原生js Array增加each方法
2012/04/07 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
bootstrap警告框示例代码分享
2017/05/17 Javascript
深入理解vue Render函数
2017/07/19 Javascript
AngularJS集合数据遍历显示的实例
2017/12/27 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
Django自定义插件实现网站登录验证码功能
2017/04/19 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
包装类的功能、种类、常用方法
2012/01/27 面试题
百度JavaScript笔试题
2015/01/15 面试题
中药专业大学生医药工作求职信
2013/10/25 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
经济类毕业生求职信
2014/06/26 职场文书
优秀家长自荐材料
2014/08/26 职场文书
员工工作自我评价
2014/09/26 职场文书
小学校长个人总结
2015/03/03 职场文书
2016年春季运动会加油稿
2015/07/22 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python