python 进阶学习之python装饰器小结


Posted in Python onSeptember 04, 2021

装饰器总结

什么是装饰器?处理函数的函数,加一个功能,但是不影响原来函数的内部结构生活中的例子:给手机加一个外壳,外壳保护了手机

装饰器有什么用?增强函数的功能

装饰器使用场景增加被装饰函数的行为代码复用

一个函数接收另一个函数作为参数,这种函数称之为高阶函数。

函数的重要特性

1.在python中,一切皆为对象,所以函数也是一个对象,从而函数可以赋值给变量。

定义一个add函数,函数的功能是实现两个数相加

python 进阶学习之python装饰器小结

系统为函数分配了一个内存地址:0x00000000021B3798

python 进阶学习之python装饰器小结

2.一个函数可以作为另一个函数的返回值

python 进阶学习之python装饰器小结

3.一个函数可以嵌套定义在另一个函数中

python 进阶学习之python装饰器小结

python 进阶学习之python装饰器小结

4.一个函数可以作为另一个函数的实参。

先来了解一下map函数
map函数是根据指定函数对指定序列做映射,可以有效提高程序运行效率。

看一下map函数的源码:map(func, *iterables)

map函数接受两个参数:

func:指定函数函数
iterables:可迭代对象,一个序列或者多个序列,即函数对应的实参

python 进阶学习之python装饰器小结

python 进阶学习之python装饰器小结

装饰器

想要实现一个功能,在不改变 test 函数内部结构的前提下,在前面加一句 “少壮不努力”

python 进阶学习之python装饰器小结

弄清楚了装饰器的工作原理:

  • 写一个高阶函数,即参数是函数,返回的也是函数;上面的例子,传函数 test 作为实参,最后返回函数 test ;
  • 在利用语法糖@,简化赋值操作;

但这样的代码是有缺陷:test 函数直接返回了函数名,这样后面就不好调用了。

改 进:

 

python 进阶学习之python装饰器小结

python 进阶学习之python装饰器小结

到此这篇关于python 进阶学习之python装饰器小结的文章就介绍到这了,更多相关python 装饰器内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现爬取知乎神回复简单爬虫代码分享
Jan 04 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 Python
详解python时间模块中的datetime模块
Jan 13 Python
python 队列详解及实例代码
Oct 18 Python
Python中的defaultdict与__missing__()使用介绍
Feb 03 Python
python 将md5转为16字节的方法
May 29 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
Python检查图片是否损坏及图片类型是否正确过程详解
Sep 30 Python
Python lxml模块的基本使用方法分析
Dec 21 Python
python读取多层嵌套文件夹中的文件实例
Feb 27 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
Jul 09 Python
自动在Windows中运行Python脚本并定时触发功能实现
Sep 04 #Python
关于python爬虫应用urllib库作用分析
解决pycharm下载库时出现Failed to install package的问题
关于python类SortedList详解
Sep 04 #Python
Python3.8官网文档之类的基础语法阅读
Sep 04 #Python
python实现Nao机器人的单目测距
Sep 04 #Python
python读取mnist数据集方法案例详解
Sep 04 #Python
You might like
SONY ICF-F10中波修复记
2021/03/02 无线电
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
JavaScript中的私有成员
2006/09/18 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
2013/04/16 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
javascript运行机制之this详细介绍
2014/02/07 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
js实现返回顶部效果
2017/03/10 Javascript
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
vue设置动态请求地址的例子
2019/11/01 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
Python随机函数random()使用方法小结
2018/04/29 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
使用Windows批处理和WMI设置Python的环境变量方法
2019/08/14 Python
pymysql 开启调试模式的实现
2019/09/24 Python
Python实现计算图像RGB均值方式
2020/06/04 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
2020/08/27 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
全球酒店比价网:HotelsCombined
2017/06/20 全球购物
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
职工擅自离岗检讨书
2014/09/23 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
小学英语复习计划
2015/01/19 职场文书
高校教师个人总结
2015/02/10 职场文书
民事诉讼代理词
2015/05/25 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python
新手必备Python开发环境搭建教程
2021/05/28 Python
如何在Python中妥善使用进度条详解
2022/04/05 Python