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访问纯真IP数据库脚本分享
Jun 29 Python
python递归查询菜单并转换成json实例
Mar 27 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Jan 11 Python
python网络爬虫学习笔记(1)
Apr 09 Python
python实现大转盘抽奖效果
Jan 22 Python
Python中那些 Pythonic的写法详解
Jul 02 Python
详解字符串在Python内部是如何省内存的
Feb 03 Python
python中加背景音乐如何操作
Jul 19 Python
学python爬虫能做什么
Jul 29 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 Python
python 如何停止一个死循环的线程
Nov 24 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
Feb 03 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防注
2007/01/15 PHP
php中字符集转换iconv函数使用总结
2014/10/11 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
js常用排序实现代码
2010/12/28 Javascript
使用jquery实现简单的ajax
2013/07/08 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
2016/09/17 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
js 转义字符及URI编码详解
2017/02/28 Javascript
JS获取一个表单字段中多条数据并转化为json格式
2017/10/17 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
脚手架vue-cli工程webpack的作用和特点
2018/09/29 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
在vue中使用Base64转码的案例
2020/08/07 Javascript
[01:58]DOTA2上海特级锦标赛现场采访:RTZ这个ID到底好不好
2016/03/25 DOTA
python实现对excel进行数据剔除操作实例
2017/12/07 Python
Python实现的远程登录windows系统功能示例
2018/06/21 Python
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
python同步两个文件夹下的内容
2019/08/29 Python
django框架ModelForm组件用法详解
2019/12/11 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
动员大会主持词
2014/03/20 职场文书
2014年生活老师工作总结
2014/12/23 职场文书
应届毕业生自荐信
2015/03/04 职场文书
活着观后感
2015/06/03 职场文书
奖学金申请书(范文)
2019/08/14 职场文书
教你使用pyinstaller打包Python教程
2021/05/27 Python
Java实现聊天机器人完善版
2021/07/04 Java/Android