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入门篇之文件
Oct 20 Python
使用Python编写类UNIX系统的命令行工具的教程
Apr 15 Python
python基于multiprocessing的多进程创建方法
Jun 04 Python
搞清楚 Python traceback的具体使用方法
May 13 Python
python 并发编程 多路复用IO模型详解
Aug 20 Python
树莓派3 搭建 django 服务器的实例
Aug 29 Python
python关闭占用端口方式
Dec 17 Python
parser.add_argument中的action使用
Apr 20 Python
Python flask框架端口失效解决方案
Jun 04 Python
简单的命令查看安装的python版本号
Aug 28 Python
Python try except finally资源回收的实现
Jan 25 Python
Python爬虫入门案例之回车桌面壁纸网美女图片采集
Oct 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 print类函数使用总结
2010/06/25 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
php创建图像具体步骤
2017/03/13 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
浅谈jquery的html方法里包含特殊字符的处理
2016/11/30 Javascript
Bootstrap CSS组件之按钮组(btn-group)
2016/12/17 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
详解Angular 自定义结构指令
2017/06/21 Javascript
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
2019/05/12 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
JavaScript Event Loop相关原理解析
2020/06/10 Javascript
实例Python处理XML文件的方法
2015/08/31 Python
高效使用Python字典的清单
2018/04/04 Python
Django中间件实现拦截器的方法
2018/06/01 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
Python基于进程池实现多进程过程解析
2020/04/30 Python
Django xadmin安装及使用详解
2020/10/26 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
2020/12/01 Python
NBA欧洲商店(西班牙):NBA Europe Store ES
2019/04/16 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
介绍一下sql server的安全性
2014/08/10 面试题
小区门卫值班制度
2014/01/24 职场文书
九年级科学教学反思
2014/01/29 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
JS数组去重详情
2021/11/07 Javascript