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实现rsa加密实例详解
Jul 19 Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 Python
Python 模拟员工信息数据库操作的实例
Oct 23 Python
python实现学生管理系统
Jan 11 Python
Ubuntu下使用python读取doc和docx文档的内容方法
May 08 Python
详解python中的hashlib模块的使用
Apr 22 Python
Django单元测试中Fixtures用法详解
Feb 25 Python
Python如何实现FTP功能
May 28 Python
python爬虫把url链接编码成gbk2312格式过程解析
Jun 08 Python
使用OpenCV对车道进行实时检测的实现示例代码
Jun 19 Python
Python实现自动签到脚本的示例代码
Aug 19 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
Sep 24 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 获取远程网页内容的函数
2009/09/08 PHP
10条PHP高级技巧[修正版]
2011/08/02 PHP
thinkPHP商城公告功能开发问题分析
2016/12/01 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
js操作select控件的几种方法
2010/06/02 Javascript
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
JS异步加载的三种实现方式
2017/03/16 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
vue服务端渲染的实例代码
2017/08/28 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
Vue项目配置跨域访问和代理proxy设置方式
2020/09/08 Javascript
[03:20]次级联赛厮杀超职业 现超级兵对拆世纪大战
2014/10/30 DOTA
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
python实现飞机大战微信小游戏
2020/03/21 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
2019/04/11 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
先进德育工作者事迹材料
2014/01/24 职场文书
大学校庆策划书
2014/01/31 职场文书
安全责任书范文
2014/08/25 职场文书
罚站检讨书
2015/01/29 职场文书
人事局接收函
2015/01/31 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL
详解Java实现数据结构之并查集
2021/06/23 Java/Android