python-高级特性

文章目录

  • 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]

python-高级特性_第1张图片
python-高级特性_第2张图片

2.生成器

1.什么叫生成器?
在Python中,一边循环一边计算的机制,称为生成器:Generator。
2.什么时候需要使用生成器?
性能限制需要用到,比如读取一个10G的文件,如果一次性将10G的文件加载到内存处理的话(read方法),内存肯定会溢出;但使用生成器把读写交叉处理进行,比如使用(readline和readlines)就可以再循环读取的同时不断处理,这样就可以节省大量的内存空间。

生成器特点

  • 解耦. 爬虫与数据存储解耦;
  • 减少内存占用. 随时生产, 即时消费, 不用堆积在内存当中;
  • 可不终止调用. 写上循环, 即可循环接收数据, 对在循环之前定义的变量, 可重复使用;
  • 生成器的循环, 在 yield处中断, 没那么占cpu.

python中return关键字和yield关键字的区别?

  • return:在程序函数中返回某个值,返回之后函数不在继续执行,彻底结束。
  • yield: 带有yield的函数是一个迭代器,函数返回某个值时,会停留在某个位置,返回函数值后,会在前面停留的位置继续执行,直到程序结束

python-高级特性_第3张图片

3.闭包

什么是闭包?如何实现闭包?
闭包就是指有权访问另一个函数作用域中的变量的函数。
创建闭包最常见方式,就是在一个函数内部创建另一个函数。
常见形式: 内部函数使用了外部函数的临时变量,且外部函数的返回值是内部函数的引用。
闭包的一个常用场景就是装饰器。

python-高级特性_第4张图片

4.装饰器

什么是装饰器?
装饰器指的是工具,而程序中的函数就是具备某一功能的工具,所以装饰器指的是为被装饰器对象添加额外功能的工具/函数。(可理解为照片与相框的关系
装饰器本质上是一个函数,该函数用来处理其他函数,它可以让其他函数在不需要修改代码的前提下增加额外的功能,装饰器的返回值也是一个函数对象。
装饰器经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等应用场景。

python-高级特性_第5张图片
python-高级特性_第6张图片

python-高级特性_第7张图片
python-高级特性_第8张图片

(1)万能装饰器的实现

python-高级特性_第9张图片
python-高级特性_第10张图片
python-高级特性_第11张图片

(2)含参数的装饰器

python-高级特性_第12张图片
python-高级特性_第13张图片

(3)多装饰器

python-高级特性_第14张图片
python-高级特性_第15张图片

5.内置高阶函数

函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返
回一个函数!Python对函数式编程提供部分支持。
把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。

python-高级特性_第16张图片
python-高级特性_第17张图片
python-高级特性_第18张图片


你可能感兴趣的:(Python,python,开发语言,装饰器模式)