川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > IT资讯

Python | 什么是闭包,生成器Generator该如何掌握

作者:川石学院 日期:2022-04-01 10:38:58 点击数:

一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“什么是闭包,生成器Generator该如何掌握”。

自动化测试:Python常见的几种编程模式(图1)

  一、闭包Closure (扩展)

  闭包的基本概念及应用技巧

  简单说,闭包就是根据不同的配置信息得到不同的结果

  再来看看专业的解释:闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。

  扩展:闭包closure

  在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。( 相当于给内部函数起别名)。

  实现规则:

  ①定义内部函数

  ②外部函数必须有返回值 ,而且返回值必须为内部函数对象

  闭包结构的定义,

  示例

  ch08-demo12-closure.py

Python | 什么是闭包,生成器Generator该如何掌握(图2)

  闭包结构的调用

Python | 什么是闭包,生成器Generator该如何掌握(图3)

  二、生成器Generator (扩展)

  掌握生成器的两种创建方法/掌握yield关键字的使用

  generator(生成器) 是 ES6 标准引入的新的数据类型,它的最大特点就是交出函数的执行权,即暂停执行。一个generator 看上去像是一个函数,但可以返回多次,与函数不同的是函数名前面多了一个星号* ,与yield 命令配合,可以实现暂停执行的功能。

  扩展:生成器Generator

  之前,我们在学习推导式的时候提到过。

  回忆:使用( )不代表元组推导式,而是实现了一一个生成器,解析器在实时生成数据,数据不会驻留在内存中。

  因此,其执行效率很高!

  获取很多数据,数据生成规则

  使用推导式快速创建一个生成器

  示例

  ch07 -demo14-generator.py

Python | 什么是闭包,生成器Generator该如何掌握(图4)

  扩展:生成器yield关键字

  ●yield是一一个类似retum的关键字,只是这个函数返回的是个生成器

  ●当你调用这个函数的时候 ,函数内部的代码并不立即执行, 这个函数只是返回-一个生成器对象

  ●当你使用for进行迭代的时候 ,函数中的代码才会执行

  使用yield创建一个生成器

  示例

  ch07-demo14-generator.py

Python | 什么是闭包,生成器Generator该如何掌握(图5)


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2022-04-01 10:38:58
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2022-04-01 10:38:58
  • 国外的月亮也不一定比国内测试猿的年薪美~2022-04-01 10:38:58
  • 建筑工程专业朱同学成功转行为软件测试人!2022-04-01 10:38:58
  • 财务管理专业转行软件测试月薪甩会计几条街!2022-04-01 10:38:58
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2022-04-01 10:38:58
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2022-04-01 10:38:58
  • 文科生转行软件测试照样拿下高薪15K!2022-04-01 10:38:58
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2022-04-01 10:38:58
  • 毕业1年,迷茫的他最终选择转行软件测试2022-04-01 10:38:58