小白的Python之路 day4 装饰器前奏
2017-12-28 19:39
465 查看
装饰器前奏:
一.定义:1.装饰器本质是函数,语法都是用def去定义的
(函数的目的:他需要完成特定的功能)
2.装饰器的功能:就是装饰其他函数(就是为其他函数添加附加功能)
二.原则:
1. 不能修改被装饰的函数的源代码
2. 不能修改被修饰的函数的调用方式
三. 实现装饰器知识储备:
1.函数即“变量” (先定义,再调用)
2.高阶函数
3.嵌套函数
4.匿名函数 样式 (calc = lambde x:x*3 )
高阶函数 + 嵌套函数 =》 装饰器
1. 函数即“变量”
(1). python的内存机制
在python解释器中,有一个概念叫做引用基数,那什么叫引用基数呐,就是比方说,x=1,它会先在内存当中把1这个值试试在在的存放下来,这个x其实就是1的门牌号,也是对1的一次引用。python什么时候把这个1这个屋子清空呐?它会等到1所对应的门牌号都没有了,就会把1这里面的东西给清掉,这个也是python的内存回收机制,就是靠这种方式回收的。
(2). del清理
那我们用什么清理呐?用del去清理门牌号,就是对1的值引用的变量,del x就表示清理掉1对应的x的门牌号。如果x没有被del,则x永远不还被删除,除非程序结束了,不然永远不会被删除。del删除的不是1,只是把门牌号x删除了,只是定期刷新时,发现1没有被其他门牌号引用了,才会被清掉。
(3). 函数在内存的表现形式
我们先通过四个例子来解释一下:
①bar函数没有定义
②bar函数在foo函数之后定义
③bar函数是在foo函数之前定义
④bar函数在foo函数调用之后声明
满足下面条件之一就可以称为高阶函数:
a.把一个函数名当做实参传给另一个函数
b.返回值中包含函数名(调用函数体)
1、把一个函数名当做实参传给另外一个函数
作用:在不修改被装饰函数源代码的情况下为其添加功能
作用:不修改函数调用方式
相关文章推荐
- 小白的Python之路 day4 生成器
- 小白的Python之路 day4 生成器并行运算
- 小白的Python之路 day4 不同目录间进行模块调用(绝对路径和相对路径)
- 小白的Python之路 day4 软件目录结构规范
- Python小白学习之路(四)——第一次练习题
- Python小白学习之路(十三)—【递归调用】
- python学习之路-4 内置函数和装饰器
- Day4 - Python基础4 迭代器、装饰器、软件开发规范
- Python小白学习之路(八)—【变量】【基本数据类型分类】【集合】【集合的功能】
- 小白的Python之路 day5 模块XML特点和用法
- python之路第五篇之装饰器:(进阶篇)
- Python小白学习之路(九)—【字符串格式化】【百分号方式】【format方式】
- python笔记 - day4-之装饰器
- 运维小白的python之路——paramiko
- Python-开发之路-装饰器&多层装饰器简介
- python-Day4-迭代器-yield异步处理--装饰器--斐波那契--递归--二分算法--二维数组旋转90度--正则表达式
- Python小白学习之路(六)—— 【元祖】【元祖相关功能】
- Python学习利器——我的小白 Anaconda安装之路
- 小白的Python之路 day5 python模块详解及import本质
- Python学习之路-初学篇之初识装饰器