python装饰器初探(推荐)


Posted in Python onJuly 21, 2016

一、含有一个装饰器

#encoding: utf-8

############含有一个装饰器#########
def outer(func):
  def inner(*args, **kwargs):#要装饰f1(),这里用这俩形式参数,可以接受任意个参数,不管f1定义几个参数
    print "1"
    r = func(*args, **kwargs)#这里要用func,不要用f1
    print "2"
    return r
  return inner

@outer #这里outer不要加括号
def f1(a1, a2):
  print "a1 + a2 = "
  return a1 + a2

f1(1,2)

二、含有两个(多个)装饰器

############含有二个装饰器#########

def outer0(func):#第一个
  def inner(*args, **kwargs):
    print "AAAAAAAAA"
    r = func(*args, **kwargs)
    print "BBBBBBBB"
    return r
  return inner

def outer(func): #第二个
  def inner(*args, **kwargs):#要装饰f1(),这里用这俩形式参数,可以接受任意个参数,不管f1定义几个参数
    print "1"
    r = func(*args, **kwargs)#这里要用func,不要用f1
    print "2"
    return r
  return inner
@outer0 #俩装饰器,流程就是:执行f1()的时候,先执行outer0.inner(),outer0.inner().func调用outer的inner函数,也就是outer.inner()函数作为outer0的参数,
     # 然后outer.inner().func再调用f1()
@outer #这里outer不要加括号
def f1(a1, a2):
  print "a1 + a2 = %d" %(a1+a2)
  return 1

f1(1,2)

以上这篇python装饰器初探(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python监控网卡流量并使用graphite绘图的示例
Apr 27 Python
python通过函数属性实现全局变量的方法
May 16 Python
python统计文本文件内单词数量的方法
May 30 Python
Python进程间通信 multiProcessing Queue队列实现详解
Sep 23 Python
python+OpenCV实现车牌号码识别
Nov 08 Python
详解python opencv、scikit-image和PIL图像处理库比较
Dec 26 Python
pytorch AvgPool2d函数使用详解
Jan 03 Python
python中线程和进程有何区别
Jun 17 Python
浅谈TensorFlow中读取图像数据的三种方式
Jun 30 Python
如何使用 Python 读取文件和照片的创建日期
Sep 05 Python
python基础之爬虫入门
May 10 Python
Python上下文管理器Content Manager
Jun 26 Python
python魔法方法-自定义序列详解
Jul 21 #Python
浅谈Python 字符串格式化输出(format/printf)
Jul 21 #Python
分享python数据统计的一些小技巧
Jul 21 #Python
python中print的不换行即时输出的快速解决方法
Jul 20 #Python
Python全局变量用法实例分析
Jul 19 #Python
python对象及面向对象技术详解
Jul 19 #Python
python异常和文件处理机制详解
Jul 19 #Python
You might like
15个小时----从修改程序到自己些程序
2006/10/09 PHP
NOT NULL 和NULL
2007/01/15 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
JS查看对象功能代码
2008/04/25 Javascript
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
jquery改变tr背景色的示例代码
2013/12/28 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
js实现下拉框二级联动
2018/12/04 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
react+redux仿微信聊天界面
2019/06/21 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
浅谈layui里的上传控件问题
2019/09/26 Javascript
在Python中利用Into包整洁地进行数据迁移的教程
2015/03/30 Python
Python正则表达式匹配HTML页面编码
2015/04/08 Python
python实现简单购物商城
2016/05/21 Python
详解Python import方法引入模块的实例
2017/08/02 Python
用python与文件进行交互的方法
2018/03/01 Python
Python实现的质因式分解算法示例
2018/05/03 Python
完美解决python中ndarray 默认用科学计数法显示的问题
2018/07/14 Python
python3使用pandas获取股票数据的方法
2018/12/22 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
html5唤醒APP小记
2019/03/27 HTML / CSS
在职人员函授期间自我评价分享
2013/11/08 职场文书
一名毕业生的自我鉴定
2013/12/04 职场文书
班主任新年寄语
2014/04/04 职场文书
见习报告的格式
2014/11/04 职场文书
发票退票证明
2015/06/24 职场文书
高中班主任心得体会
2016/01/07 职场文书