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中用函数作为返回值和实现闭包的教程
Apr 27 Python
Python爬虫模拟登录带验证码网站
Jan 22 Python
Python正则表达式知识汇总
Sep 22 Python
Python进程间通信之共享内存详解
Oct 30 Python
python机器学习之神经网络(二)
Dec 20 Python
python的re正则表达式实例代码
Jan 24 Python
儿童学习python的一些小技巧
May 27 Python
详解重置Django migration的常见方式
Feb 15 Python
Django model select的多种用法详解
Jul 16 Python
python多进程并发demo实例解析
Dec 13 Python
selenium携带cookies模拟登陆CSDN的实现
Jan 19 Python
聊聊pytorch测试的时候为何要加上model.eval()
May 23 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
非常好用的Zend Framework分页类
2014/06/25 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
关于IE BUG与字符串截取substr的解决办法
2013/04/10 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
JavaScript实现99乘法表及隔行变色实例代码
2016/02/24 Javascript
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
用python代码做configure文件
2014/07/20 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
使用Python+Splinter自动刷新抢12306火车票
2018/01/03 Python
Python遍历pandas数据方法总结
2018/02/09 Python
Python程序慢的重要原因
2020/09/04 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
毕业生自我鉴定
2013/11/05 职场文书
机械工程师的岗位职责
2013/11/17 职场文书
一份报关员的职业规划范文
2014/01/08 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
《蒲公英》教学反思
2014/02/28 职场文书
社团活动总结怎么写
2014/06/30 职场文书
奖励通知
2015/04/22 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
CSS极坐标的实例代码
2021/06/03 HTML / CSS
CSS实现单选折叠菜单功能
2021/11/01 HTML / CSS