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和Ruby中each循环引用变量问题(一个隐秘BUG?)
Jun 04 Python
python通过zlib实现压缩与解压字符串的方法
Nov 19 Python
对于Python异常处理慎用“except:pass”建议
Apr 02 Python
实例说明Python中比较运算符的使用
May 13 Python
Python设置Socket代理及实现远程摄像头控制的例子
Nov 13 Python
Python如何实现文本转语音
Aug 08 Python
用python写一个windows下的定时关机脚本(推荐)
Mar 21 Python
Python语言检测模块langid和langdetect的使用实例
Feb 19 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
Jul 01 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
Jan 17 Python
pytorch实现CNN卷积神经网络
Feb 19 Python
简单了解Django项目应用创建过程
Jul 06 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 实现判断用户是否手机访问
2015/01/21 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
childNodes.length与children.length的区别
2009/05/14 Javascript
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
jQuery限制图片大小的方法
2016/05/25 Javascript
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
vxe-table vue table 表格组件功能
2019/05/26 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
js观察者模式的弹幕案例
2020/11/23 Javascript
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
用Python进行TCP网络编程的教程
2015/04/29 Python
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
2016/06/07 Python
python2.7到3.x迁移指南
2018/02/01 Python
如何利用python查找电脑文件
2018/04/27 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
2020/02/05 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
上班迟到检讨书
2014/01/10 职场文书
电大本科自我鉴定
2014/02/05 职场文书
黄继光的英雄事迹材料
2014/02/13 职场文书
给校长的建议书
2014/03/12 职场文书
中药专业自荐信范文
2014/03/18 职场文书
新郎新娘答谢词
2015/01/04 职场文书
新郎婚礼致辞
2015/07/27 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
《鲁滨逊漂流记》之六读后感(4篇)
2019/09/29 职场文书
SpringBoot集成Redis的思路详解
2021/10/16 Redis
低门槛开发iOS、Android、小程序应用的前端框架详解
2021/10/16 Javascript