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 相关文章推荐
wxPython使用系统剪切板的方法
Jun 16 Python
Python3使用requests登录人人影视网站的方法
May 11 Python
Django实现自定义404,500页面教程
Mar 26 Python
python处理Excel xlrd的简单使用
Sep 12 Python
python机器学习之决策树分类详解
Dec 20 Python
python requests 测试代理ip是否生效
Jul 25 Python
python设定并获取socket超时时间的方法
Jan 12 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
Jun 13 Python
pygame实现打字游戏
Feb 19 Python
Pytorch之Variable的用法
Dec 31 Python
Python入门基础之数字字符串与列表
Feb 01 Python
pd.DataFrame中的几种索引变换的实现
Jun 16 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静态文件生成类实例分析
2015/01/03 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
javascript创建数组之联合数组的使用方法示例
2013/12/26 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
JavaScript动态提示输入框输入字数的方法
2015/07/27 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
JS实现图片切换效果
2018/11/17 Javascript
React中this丢失的四种解决方法
2019/03/12 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
vue父子模板传值问题解决方法案例分析
2020/02/26 Javascript
介绍Python中内置的itertools模块
2015/04/29 Python
Python中字符串的格式化方法小结
2016/05/03 Python
儿童编程python入门
2018/05/08 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)
2020/04/08 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
python 中的9个实用技巧,助你提高开发效率
2020/08/30 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
python打包生成so文件的实现
2020/10/30 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
土木工程专业个人求职信
2013/12/30 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
工作建议书范文
2014/05/13 职场文书
学校交通安全责任书
2014/08/25 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
团员年度个人总结
2015/02/26 职场文书
2015年仓管员工作总结
2015/04/21 职场文书
php字符串倒叙
2021/04/01 PHP