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 实现数据库更新脚本的生成方法
Jul 09 Python
Python中用字符串调用函数或方法示例代码
Aug 04 Python
轻松实现TensorFlow微信跳一跳的AI
Jan 05 Python
python3 selenium 切换窗口的几种方法小结
May 21 Python
在Python中增加和插入元素的示例
Nov 01 Python
Python中的random.uniform()函数教程与实例解析
Mar 02 Python
Python使用sax模块解析XML文件示例
Apr 04 Python
Python中一些深不见底的“坑”
Jun 12 Python
python 猴子补丁(monkey patch)
Jun 26 Python
Python 堆叠柱状图绘制方法
Jul 29 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 Python
利用Python实现学生信息管理系统的完整实例
Dec 30 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函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
javascript基础的动画教程,直观易懂
2007/01/10 Javascript
php gethostbyname获取域名ip地址函数详解
2010/01/24 Javascript
使用JavaScript实现Java的List功能(实例讲解)
2013/11/07 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
2016/11/03 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
2017/03/25 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
vue + vuex todolist的实现示例代码
2018/03/09 Javascript
使用webpack-dev-server处理跨域请求的方法
2018/04/18 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
Python实现批量更换指定目录下文件扩展名的方法
2016/09/19 Python
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
python实现微信防撤回神器
2019/04/29 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
解决pytorch 交叉熵损失输出为负数的问题
2020/07/07 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
python集合的新增元素方法整理
2020/12/07 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
西班牙伏林航空公司:Vueling
2016/08/05 全球购物
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
2015年企业工作总结范文
2015/04/28 职场文书
python基础详解之if循环语句
2021/04/24 Python
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android