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随机生成彩票号码的方法
Mar 05 Python
Python自定义线程池实现方法分析
Feb 07 Python
Python标准库笔记struct模块的使用
Feb 22 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
Apr 18 Python
利用Django-environ如何区分不同环境
Aug 26 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
Dec 27 Python
python2与python3爬虫中get与post对比解析
Sep 18 Python
python Popen 获取输出,等待运行完成示例
Dec 30 Python
PyTorch中topk函数的用法详解
Jan 02 Python
使用keras2.0 将Merge层改为函数式
May 23 Python
python 识别登录验证码图片功能的实现代码(完整代码)
Jul 03 Python
Python如何输出百分比
Jul 31 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
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
表单JS弹出填写提示效果代码
2011/04/16 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
ionic实现可滑动的tab选项卡切换效果
2020/04/15 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
基于jQuery实现中英文切换导航条效果
2016/09/18 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
javascript对HTML字符转义与反转义
2018/12/13 Javascript
JavaScript类的继承操作实例总结
2018/12/20 Javascript
一秒学会微信小程序制作table表格
2019/02/14 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
2020/10/27 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
Python利用带权重随机数解决抽奖和游戏爆装备问题
2016/06/16 Python
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
python3实现windows下同名进程监控
2018/06/21 Python
Flask框架信号用法实例分析
2018/07/24 Python
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
一些Unix笔试题和面试题
2013/01/22 面试题
《老王》教学反思
2014/02/23 职场文书
企业计划生育责任书
2015/05/09 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
盗窃案辩护词
2015/05/21 职场文书
2015年环境整治工作总结
2015/05/22 职场文书
高一化学教学反思
2016/02/22 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL
python中urllib包的网络请求教程
2022/04/19 Python
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers