装饰器decorate,顾名思义,用来装饰函数的。
例如,写一个函数f1,现在需要有新的功能在f1的基础上添加,可以像下面这样实现,而我以前也是这样实现的

 def f1():print("aaaa")def f2():f1()print("5555")

这样实现,没什么问题的,可能就是代码可读性不是很好,使用装饰器如下:

def decorate(func):def wrapper():func()print("5555")return wrapper@decorate   def f1():print("aaaa")

1、f1被装饰函数
2、将被装饰函数作为参数传给装饰器decorate
3、执行decorate函数
带参数的情况

def decorate(func):def wrapper(age):func(age)print("5555")return wrapper@decorate
def f1(age):print("我今年{}岁".format(age))f1(23)

运行结果

我今年23岁
5555

装饰器带参数,需要再嵌套一层,感觉在套娃

def test(a):def decorate(func):def wrapper(age):func(age)print("a={}".format(a))return wrapperreturn decorate@test(a=10)
def f1(age):print("我今年{}岁".format(age))f1(23)

结果是

我今年23岁
a=10

多个装饰器


def decorate(func):def wrapper(age):func(age)print("5555")return wrapperdef decorate_2(func):def wrapper(age):func(age)print("6666")return wrapper@decorate_2
@decorate
def f1(age):print("我今年{}岁".format(age))f1(23)

结果是

我今年23岁
5555
6666

离得近的装饰器先装饰,所以先输出5555

python查缺补漏之decorate相关推荐

  1. python查缺补漏

    python语法 描述 step.iteritems() items()返回的是列表对象,而iteritems()返回的是iterator对象.例如: print dic.items()        ...

  2. Python高效技巧(三)---查缺补漏(时间处理、shutill模块、高阶函数、装饰器)

    Python高效技巧 前言: 函数 1.可接受任意数量参数的函数和关键词参数 2.匿名函数 lambda 二.其他 1.关于序列的各种方法 2.产生器表达式 三. 查缺补漏 1.时间处理 1. cal ...

  3. EFCore查缺补漏(二):查询

    相关文章: EFCore查缺补漏 第 20 轮 TechEmpower 评测结果出炉了,ASP.NET Core 的 Plaintext 成绩名列前茅,带着 EFCore 的测试却在 Single q ...

  4. I2C总线学习—查缺补漏—S3C2440的I2C控制器

    I2C总线学习-查缺补漏-S3C2440的I2C控制器                  学习了IIC总线协议的理论部分,觉得应该学习具体操作2440的IIC控制器,毕竟最终都是为了学习S3C2440 ...

  5. I2C总线学习—查缺补漏—应答信号ACK

    I2C总线学习-查缺补漏-应答信号ACK           IIC协议规定,当主机作为接收设备时,主机对最后一个字节不应答,以向发送设备(从设备)标识数据传送结束.这是因为每次传输都应得到应答信号后 ...

  6. I2C总线学习—查缺补漏—对数据有效性的思考

    I2C总线学习-查缺补漏-对数据有效性的思考 IIC协议规定:SDA上传输的数据必须在SCL为高电平期间保持稳定,SDA上的数据只能在SCL为低电平期间变化.IIC期间在脉冲上升沿把数据放到SDA上, ...

  7. 查缺补漏:集和与非平凡属性

    查缺补漏:集和与非平凡属性 前面的习题和知识点补充 Conjunctive normal form(CNF)是布尔逻辑的一种方法,它将公式表示为带有AND或or的子句的连词.由连词or AND连接的每 ...

  8. 赫斌老师数据结构视频查缺补漏笔记

    赫斌老师数据结构视频查缺补漏笔记 观看学习赫斌老师数据结构的视频,记录下自己之前学习这块内容时似懂非懂的知识,仅针对自己查缺补漏使用 视频链接:<郝斌老师数据结构自学视频> 1.指针的大小 ...

  9. C++查缺补漏之异常(续)

    此文是文章<C++查缺补漏之异常>:http://blog.csdn.net/ii1245712564/article/details/44617881的后续 1.异常的重新抛出 可能单个 ...

  10. 「查缺补漏」高频考点浏览器面试题

    前言 想要成为一名合格的前端工程师,掌握相关浏览器的工作原理是必备的,这样子才会有一个完整知识体系,要是「能参透浏览器的工作原理,你就能解决80%的前端难题」. 这篇梳理的话,更多的是对浏览器工作原理 ...

最新文章

  1. 8道Python基础面试练习题
  2. FPGA之道(13)FPGA芯片的应用模式
  3. 【异常】Error: ERROR 1012 (42M03): Table undefined. (state=42M03,code=1012)
  4. Java中传值与传地址
  5. 『软件工程4』一文了解软件项目管理中的4P
  6. [2021-CVPR] Fine-grained Angular Contrastive Learning with Coarse Labels 论文简析
  7. 织梦5.7生成HTML很慢,Dedecms 生成静态网页速度特别慢的问题
  8. Nginx源码阅读(gdb 调试nginx文件) -- 解析配置文件
  9. 什么是java cdm_Java-ORM数据库框架CDM介绍
  10. VMware Workstation虚拟机无法运行
  11. The project uses Gradle 4.1 which is incompatible with Java 11 or newer.
  12. 【JAVA】图形用户界面练习
  13. php重载求圆锥体积,编写一函数文件,实现求一个圆锥体的体积。
  14. 相伴十六载,讲讲我和数据仓库的故事(一)
  15. 知乎上那些简短却非常深刻的回答
  16. 现实与理想(中国台湾大学彭明辉)
  17. 腾讯2022应届生校招总包40W
  18. 工商管理专业知识与实务(中级)【1】
  19. 盘点 | AAAI2020中的四篇推荐系统好文
  20. 学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)...

热门文章

  1. win10计算机还原点如何创建,win10系统创建还原点及系统还原的操作方法
  2. 一篇走心的文章和一个不起眼的引流方法
  3. 设备、设备控制器与驱动程序
  4. 测试er如何通过MacOS连接IOS系统iPhone查看系统崩溃日志?
  5. ios11.3相册闪退_iOS11拍照闪退,保存图片闪退问题(writeImageToSavedPhotosAlbum)
  6. 微信扫码下载APK遮罩提示示例
  7. Material Design-Surface平面第二篇
  8. C语言 输入今天的日期,显示明天的日期
  9. java导出格式与拓展名不一致_ASP.NET导出Excel打开时提示:与文件扩展名指定文件不一致解决方法...
  10. android studio 讯飞语音,讯飞语音 使用步骤(针对androidStudio):语音转文字:(示例代码)...