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生成指定尺寸缩略图的示例
May 07 Python
Python 装饰器实现DRY(不重复代码)原则
Mar 05 Python
python中的变量如何开辟内存
Jun 26 Python
Centos部署django服务nginx+uwsgi的方法
Jan 02 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
Jan 17 Python
Python QQBot库的QQ聊天机器人
Jun 19 Python
浅谈Python小波分析库Pywavelets的一点使用心得
Jul 09 Python
Python3操作MongoDB增册改查等方法详解
Feb 10 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
详解java调用python的几种用法(看这篇就够了)
Dec 10 Python
Python 求向量的余弦值操作
Mar 04 Python
Python中使用ipython的详细教程
Jun 22 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
操作Oracle的php类
2006/10/09 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
2011/12/26 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
jquery实现的图片点击滚动效果
2014/04/29 Javascript
使用jquery修改表单的提交地址基本思路
2014/06/04 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
2015/11/03 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
Python中优化NumPy包使用性能的教程
2015/04/23 Python
分析并输出Python代码依赖的库的实现代码
2015/08/09 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
Pandas之MultiIndex对象的示例详解
2019/06/25 Python
python如何处理程序无法打开
2020/06/16 Python
html5教你做炫酷的碎片式图片切换 (canvas)
2017/07/28 HTML / CSS
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
初三政治教学反思
2014/01/30 职场文书
小学六年级学生评语
2014/04/22 职场文书
初三开学计划书
2014/04/27 职场文书
植树节活动总结
2014/04/30 职场文书
2014年计生标语
2014/06/23 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
销售员岗位职责
2015/02/10 职场文书
留学推荐信英文范文
2015/03/26 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
SQLServer常见数学函数梳理总结
2022/08/05 MySQL