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回调函数的使用方法
Jan 23 Python
通过代码实例展示Python中列表生成式的用法
Mar 31 Python
pandas全表查询定位某个值所在行列的方法
Apr 12 Python
python输出100以内的质数与合数实例代码
Jul 08 Python
教你一步步利用python实现贪吃蛇游戏
Jun 27 Python
如何关掉pycharm中的python console(图解)
Oct 31 Python
Django 框架模型操作入门教程
Nov 05 Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 Python
django使用JWT保存用户登录信息
Apr 22 Python
Python模拟登入的N种方式(建议收藏)
May 31 Python
用python实现前向分词最大匹配算法的示例代码
Aug 06 Python
Python中非常使用的6种基本变量的操作与技巧
Mar 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
星际中的相关伤害
2020/03/04 星际争霸
PHP中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
jquery select 设置默认选中的示例代码
2014/02/07 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
全面解析Javascript无限添加QQ好友原理
2016/06/15 Javascript
第十篇BootStrap轮播插件使用详解
2016/06/21 Javascript
bootstrap table小案例
2016/10/21 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
python类装饰器用法实例
2015/06/04 Python
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
Python简单处理坐标排序问题示例
2019/07/11 Python
美国著名首饰网站:BaubleBar
2016/08/29 全球购物
澳大利亚新奇小玩意网站:Yellow Octopus
2017/12/28 全球购物
英国现代家具和照明购物网站:Heal’s
2019/10/30 全球购物
日期和时间问题
2015/01/04 面试题
工程业务员工作职责
2013/12/07 职场文书
《英英学古诗》教学反思
2014/04/11 职场文书
2014年营业员工作总结
2014/11/18 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
学校中秋节活动总结
2015/03/23 职场文书
社区宣传标语口号
2015/12/26 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书
python中的被动信息搜集
2021/04/29 Python
MySQL如何解决幻读问题
2021/08/07 MySQL
Python中的程序流程控制语句
2022/02/24 Python
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫