文章目录
- 1.生成式
- 2.生成器
- 3.闭包
- 4.装饰器
- (1)万能装饰器的实现
- (2)含参数的装饰器
- (3)多装饰器
- 5.内置高阶函数
1.生成式
列表生成式就是一个用来生成列表的特定语法形式的表达式。是Python提供的一种生成列表的简洁形式, 可快速生成一个新的list。
普通的语法格式:[exp for iter_var in iterable]
带过滤功能语法格式: [exp for iter_var in iterable if_exp]
循环嵌套语法格式: [exp for iter_var_A in iterable_A for iter_var_B in iterable_B]
2.生成器
1.什么叫生成器?
在Python中,一边循环一边计算的机制,称为生成器:Generator。
2.什么时候需要使用生成器?
性能限制需要用到,比如读取一个10G的文件,如果一次性将10G的文件加载到内存处理的话(read方法),内存肯定会溢出;但使用生成器把读写交叉处理进行,比如使用(readline和readlines)就可以再循环读取的同时不断处理,这样就可以节省大量的内存空间。
生成器特点
- 解耦. 爬虫与数据存储解耦;
- 减少内存占用. 随时生产, 即时消费, 不用堆积在内存当中;
- 可不终止调用. 写上循环, 即可循环接收数据, 对在循环之前定义的变量, 可重复使用;
- 生成器的循环, 在 yield处中断, 没那么占cpu.
python中return关键字和yield关键字的区别?
- return:在程序函数中返回某个值,返回之后函数不在继续执行,彻底结束。
- yield: 带有yield的函数是一个迭代器,函数返回某个值时,会停留在某个位置,返回函数值后,会在前面停留的位置继续执行,直到程序结束
3.闭包
什么是闭包?如何实现闭包?
闭包就是指有权访问另一个函数作用域中的变量的函数。
创建闭包最常见方式,就是在一个函数内部创建另一个函数。
常见形式: 内部函数使用了外部函数的临时变量,且外部函数的返回值是内部函数的引用。
闭包的一个常用场景就是装饰器。
4.装饰器
什么是装饰器?
装饰器指的是工具,而程序中的函数就是具备某一功能的工具,所以装饰器指的是为被装饰器对象添加额外功能的工具/函数。(可理解为照片与相框的关系)
装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值也是一个函数对象。
装饰器经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等应用场景。
(1)万能装饰器的实现
(2)含参数的装饰器
(3)多装饰器
5.内置高阶函数
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返
回一个函数!Python对函数式编程提供部分支持。
把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。