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 18 Python
Win8下python3.5.1安装教程
Jul 29 Python
Python3.7实现中控考勤机自动连接
Aug 28 Python
Django 创建/删除用户的示例代码
Jul 24 Python
Python 使用list和tuple+条件判断详解
Jul 30 Python
pandas中DataFrame修改index、columns名的方法示例
Aug 02 Python
学习Django知识点分享
Sep 11 Python
Python实现socket非阻塞通讯功能示例
Nov 06 Python
Python模块/包/库安装的六种方法及区别
Feb 24 Python
Python切割图片成九宫格的示例代码
Mar 10 Python
Python基于内置函数type创建新类型
Oct 22 Python
Matplotlib绘制条形图的方法你知道吗
Mar 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 jsonp单引号转义
2014/11/23 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
javascript import css实例代码
2008/07/18 Javascript
prototype Element学习笔记(篇二)
2008/10/26 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
深入浅析javascript中的作用域(推荐)
2016/07/19 Javascript
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
Express使用html模板的详细代码
2017/09/18 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
原生JS实现烟花效果
2020/03/10 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
Python中的yield浅析
2014/06/16 Python
Python语言描述随机梯度下降法
2018/01/04 Python
numpy中实现二维数组按照某列、某行排序的方法
2018/04/04 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
2019/07/01 Python
用python写一个定时提醒程序的实现代码
2019/07/22 Python
Python 创建守护进程的示例
2020/09/29 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
HTML5基于flash实现播放RTMP协议视频的示例代码
2020/12/04 HTML / CSS
Java面试题:为什么要用Java
2012/05/11 面试题
英语专业个人求职自荐信
2013/09/21 职场文书
四年级小学生评语
2014/12/26 职场文书
会计专业自荐信范文
2015/03/05 职场文书
小学生安全保证书
2015/05/09 职场文书
合同纠纷调解书
2015/05/20 职场文书
节约用水广告语60条
2019/11/14 职场文书