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中logging模块的用法实例
Sep 29 Python
用Python制作简单的钢琴程序的教程
Apr 01 Python
Python设计模式中单例模式的实现及在Tornado中的应用
Mar 02 Python
Python3.6简单操作Mysql数据库
Sep 12 Python
使用python编写udp协议的ping程序方法
Apr 22 Python
Python爬虫之pandas基本安装与使用方法示例
Aug 08 Python
python实现扫描局域网指定网段ip的方法
Apr 16 Python
Flask-WTF表单的使用方法
Jul 12 Python
Python简易版停车管理系统
Aug 12 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
Aug 24 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
Jan 09 Python
解决pycharm不能自动保存在远程linux中的问题
Feb 06 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
PHP的单引号和双引号 字符串效率
2009/05/27 PHP
PHP return语句另类用法不止是在函数中
2014/09/17 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
JavaScript全排列的六种算法 具体实现
2013/06/29 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
用户代理字符串userAgent可实现的四个识别
2015/09/20 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
2017/05/08 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
python网络编程学习笔记(一)
2014/06/09 Python
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
windows下Python实现将pdf文件转化为png格式图片的方法
2017/07/21 Python
详解Python中的正则表达式
2018/07/08 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
简单了解python中的与或非运算
2019/09/18 Python
如何将 awk 脚本移植到 Python
2019/12/09 Python
python输出国际象棋棋盘的实例分享
2020/11/26 Python
python 实现全球IP归属地查询工具
2020/12/18 Python
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
三方协议书范本
2014/04/22 职场文书
另类冲刺标语
2014/06/24 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL