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抓取百度查询结果的方法
Jul 08 Python
Python中subprocess的简单使用示例
Jul 28 Python
Python+微信接口实现运维报警
Aug 27 Python
好用的Python编辑器WingIDE的使用经验总结
Aug 31 Python
Python实现的密码强度检测器示例
Aug 23 Python
python flask 如何修改默认端口号的方法步骤
Jul 12 Python
python生成器推导式用法简单示例
Oct 08 Python
python实现快递价格查询系统
Mar 03 Python
python 链接sqlserver 写接口实例
Mar 11 Python
Python参数传递实现过程及原理详解
May 14 Python
基于Keras中Conv1D和Conv2D的区别说明
Jun 19 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
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
php compact 通过变量创建数组
2016/11/15 PHP
js 幻灯片的实现
2011/12/06 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
vue实现购物车的监听
2020/04/20 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
python中的__slots__使用示例
2015/02/26 Python
Python实现简单生成验证码功能【基于random模块】
2018/02/10 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
python实现邮件发送功能
2019/08/10 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
什么是Python包的循环导入
2020/09/08 Python
个人实用简单的自我评价
2013/10/19 职场文书
高三语文教学反思
2014/01/15 职场文书
大学校园活动策划书
2014/02/04 职场文书
母亲节感恩活动记录
2014/03/16 职场文书
建筑投标担保书
2014/05/20 职场文书
银行授权委托书样本
2014/10/13 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
英文辞职信范文
2015/05/13 职场文书
新党员入党决心书
2015/09/22 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电