python查缺补漏之decorate
装饰器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相关推荐
- python查缺补漏
python语法 描述 step.iteritems() items()返回的是列表对象,而iteritems()返回的是iterator对象.例如: print dic.items() ...
- Python高效技巧(三)---查缺补漏(时间处理、shutill模块、高阶函数、装饰器)
Python高效技巧 前言: 函数 1.可接受任意数量参数的函数和关键词参数 2.匿名函数 lambda 二.其他 1.关于序列的各种方法 2.产生器表达式 三. 查缺补漏 1.时间处理 1. cal ...
- EFCore查缺补漏(二):查询
相关文章: EFCore查缺补漏 第 20 轮 TechEmpower 评测结果出炉了,ASP.NET Core 的 Plaintext 成绩名列前茅,带着 EFCore 的测试却在 Single q ...
- I2C总线学习—查缺补漏—S3C2440的I2C控制器
I2C总线学习-查缺补漏-S3C2440的I2C控制器 学习了IIC总线协议的理论部分,觉得应该学习具体操作2440的IIC控制器,毕竟最终都是为了学习S3C2440 ...
- I2C总线学习—查缺补漏—应答信号ACK
I2C总线学习-查缺补漏-应答信号ACK IIC协议规定,当主机作为接收设备时,主机对最后一个字节不应答,以向发送设备(从设备)标识数据传送结束.这是因为每次传输都应得到应答信号后 ...
- I2C总线学习—查缺补漏—对数据有效性的思考
I2C总线学习-查缺补漏-对数据有效性的思考 IIC协议规定:SDA上传输的数据必须在SCL为高电平期间保持稳定,SDA上的数据只能在SCL为低电平期间变化.IIC期间在脉冲上升沿把数据放到SDA上, ...
- 查缺补漏:集和与非平凡属性
查缺补漏:集和与非平凡属性 前面的习题和知识点补充 Conjunctive normal form(CNF)是布尔逻辑的一种方法,它将公式表示为带有AND或or的子句的连词.由连词or AND连接的每 ...
- 赫斌老师数据结构视频查缺补漏笔记
赫斌老师数据结构视频查缺补漏笔记 观看学习赫斌老师数据结构的视频,记录下自己之前学习这块内容时似懂非懂的知识,仅针对自己查缺补漏使用 视频链接:<郝斌老师数据结构自学视频> 1.指针的大小 ...
- C++查缺补漏之异常(续)
此文是文章<C++查缺补漏之异常>:http://blog.csdn.net/ii1245712564/article/details/44617881的后续 1.异常的重新抛出 可能单个 ...
- 「查缺补漏」高频考点浏览器面试题
前言 想要成为一名合格的前端工程师,掌握相关浏览器的工作原理是必备的,这样子才会有一个完整知识体系,要是「能参透浏览器的工作原理,你就能解决80%的前端难题」. 这篇梳理的话,更多的是对浏览器工作原理 ...
最新文章
- 8道Python基础面试练习题
- FPGA之道(13)FPGA芯片的应用模式
- 【异常】Error: ERROR 1012 (42M03): Table undefined. (state=42M03,code=1012)
- Java中传值与传地址
- 『软件工程4』一文了解软件项目管理中的4P
- [2021-CVPR] Fine-grained Angular Contrastive Learning with Coarse Labels 论文简析
- 织梦5.7生成HTML很慢,Dedecms 生成静态网页速度特别慢的问题
- Nginx源码阅读(gdb 调试nginx文件) -- 解析配置文件
- 什么是java cdm_Java-ORM数据库框架CDM介绍
- VMware Workstation虚拟机无法运行
- The project uses Gradle 4.1 which is incompatible with Java 11 or newer.
- 【JAVA】图形用户界面练习
- php重载求圆锥体积,编写一函数文件,实现求一个圆锥体的体积。
- 相伴十六载,讲讲我和数据仓库的故事(一)
- 知乎上那些简短却非常深刻的回答
- 现实与理想(中国台湾大学彭明辉)
- 腾讯2022应届生校招总包40W
- 工商管理专业知识与实务(中级)【1】
- 盘点 | AAAI2020中的四篇推荐系统好文
- 学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)...
热门文章
- win10计算机还原点如何创建,win10系统创建还原点及系统还原的操作方法
- 一篇走心的文章和一个不起眼的引流方法
- 设备、设备控制器与驱动程序
- 测试er如何通过MacOS连接IOS系统iPhone查看系统崩溃日志?
- ios11.3相册闪退_iOS11拍照闪退,保存图片闪退问题(writeImageToSavedPhotosAlbum)
- 微信扫码下载APK遮罩提示示例
- Material Design-Surface平面第二篇
- C语言 输入今天的日期,显示明天的日期
- java导出格式与拓展名不一致_ASP.NET导出Excel打开时提示:与文件扩展名指定文件不一致解决方法...
- android studio 讯飞语音,讯飞语音 使用步骤(针对androidStudio):语音转文字:(示例代码)...