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获取单个程序CPU使用情况趋势图
Mar 10 Python
Python实现简单状态框架的方法
Mar 19 Python
多版本Python共存的配置方法
May 22 Python
python交互式图形编程实例(一)
Nov 17 Python
详解python异步编程之asyncio(百万并发)
Jul 07 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
Aug 05 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
Python jieba库用法及实例解析
Nov 04 Python
django 解决扩展自带User表遇到的问题
May 14 Python
Python 如何调试程序崩溃错误
Aug 03 Python
Python 读取位于包中的数据文件
Aug 07 Python
Django REST framework 限流功能的使用
Jun 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中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
Java Mybatis框架入门基础教程
2015/09/21 Javascript
10个很棒的jQuery代码片段
2015/09/24 Javascript
ES6通过babel转码使用webpack使用import关键字
2016/12/13 Javascript
jQuery.form.js的使用详解
2017/06/14 jQuery
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
Vue项目中使用better-scroll实现菜单映射功能方法
2019/09/11 Javascript
python获取文件后缀名及批量更新目录下文件后缀名的方法
2014/11/11 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
python异常处理和日志处理方式
2019/12/24 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
科颜氏英国官网:Kiehl’s英国
2019/11/20 全球购物
Java语言的优势
2015/01/10 面试题
Java语言程序设计测试题改错题部分
2014/07/22 面试题
手机业务员岗位职责
2013/12/13 职场文书
诚信承诺书模板
2014/05/26 职场文书
建筑安全生产目标责任书
2014/07/23 职场文书
好人好事演讲稿
2014/09/01 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
上下班时间调整通知
2015/04/23 职场文书
小学六一主持词开场白
2015/05/28 职场文书
贷款工资证明范本
2015/06/12 职场文书
新店开张宣传语
2015/07/13 职场文书
商务宴会祝酒词
2015/08/11 职场文书
HTML+CSS+JS实现图片的瀑布流布局的示例代码
2021/04/22 HTML / CSS
python基于tkinter实现gif录屏功能
2021/05/19 Python