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 相关文章推荐
pyramid配置session的方法教程
Nov 27 Python
python解析xml文件实例分析
May 27 Python
python实现简单购物商城
May 21 Python
Python实现迭代时使用索引的方法示例
Jun 05 Python
python按照多个条件排序的方法
Feb 08 Python
Python代码实现删除一个list里面重复元素的方法
Apr 02 Python
基于sklearn实现Bagging算法(python)
Jul 11 Python
Python math库 ln(x)运算的实现及原理
Jul 17 Python
python使用writerows写csv文件产生多余空行的处理方法
Aug 01 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
Dec 06 Python
django中的数据库迁移的实现
Mar 16 Python
如何理解python对象
Jun 21 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 mongodb扩展时 需要注意的事项
2013/06/18 PHP
解读PHP中上传文件的处理问题
2016/05/29 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
提高NodeJS中SSL服务的性能
2014/07/15 NodeJs
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
对Web开发中前端框架与前端类库的一些思考
2015/03/27 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
2016/08/10 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
2017/04/21 Javascript
vue组件学习教程
2017/09/09 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python单线程实现多个定时器示例
2014/03/30 Python
python多进程共享变量
2016/04/06 Python
python编程实现归并排序
2017/04/14 Python
在pandas多重索引multiIndex中选定指定索引的行方法
2018/11/16 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
Python循环结构的应用场景详解
2019/07/11 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
python如何停止递归
2020/09/09 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
通用的Django注册功能模块实现方法
2021/02/05 Python
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
市场营销专业毕业生自荐信
2013/11/02 职场文书
电脑售后服务承诺书
2014/03/27 职场文书
学生意外伤害赔偿协议书
2014/09/17 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
启迪人心的励志语录:脾气永远不要大于本事
2020/01/02 职场文书