位置: 编程技术 - 正文

浅谈Python生成器generator之next和send的运行流程(详解)(python3 生成器)

编辑:rootadmin

推荐整理分享浅谈Python生成器generator之next和send的运行流程(详解)(python3 生成器),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python 生成器原理,python生成器有什么用,python生成器有几种写法,python3 生成器,python生成器有几种写法,python生成器详解,python生成器详解,python3 生成器,内容如对您有帮助,希望把文章链接给更多的朋友!

对于普通的生成器,第一个next调用,相当于启动生成器,会从生成器函数的第一行代码开始执行,直到第一次执行完yield语句(第4行)后,跳出生成器函数。

然后第二个next调用,进入生成器函数后,从yield语句的下一句语句(第5行)开始执行,然后重新运行到yield语句,执行后,跳出生成器函数,后面再次调用next,依次类推。

下面是一个列子:

了解了next()如何让包含yield的函数执行后,我们再来看另外一个非常重要的函数send(msg)。其实next()和send()在一定意义上作用是相似的,区别是send()可以传递yield表达式的值进去,而next()不能传递特定的值,只能传递None进去。因此,我们可以看做c.next() 和 c.send(None) 作用是一样的。

浅谈Python生成器generator之next和send的运行流程(详解)(python3 生成器)

需要提醒的是,第一次调用时,请使用next()语句或是send(None),不能使用send发送一个非None的值,否则会出错的,因为没有Python yield语句来接收这个值。

下面来着重说明下send执行的顺序。当第一次send(None)(对应行)时,启动生成器,从生成器函数的第一行代码开始执行,直到第一次执行完yield(对应第4行)后,跳出生成器函数。这个过程中,n1一直没有定义。

下面运行到send(1)时,进入生成器函数,注意这里与调用next的不同。这里是从第4行开始执行,把1赋值给n1,但是并不执行yield部分。下面继续从yield的下一语句继续执行,然后重新运行到yield语句,执行后,跳出生成器函数。

即send和next相比,只是开始多了一次赋值的动作,其他运行流程是相同的。

运行结果:

以上这篇浅谈Python生成器generator之next和send的运行流程(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

利用Celery实现Django博客PV统计功能详解 前言前几天给网站的文章增加了pv统计,之前只有uv统计。之前没加pv统计是觉得每个用户每访问一次文章,我都需要做一次数据库写操作实在是有损性

Python实现SSH远程登陆,并执行命令的方法(分享) 在自动化测试过程中,比较常用的操作就是对远程主机进行操作,如何操作呢?使用SSH远程登陆到主机,然后执行相应的command即可。使用Python来实现这

Python实现Windows和Linux之间互相传输文件(文件夹)的方法 项目中需要从Windows系统传输ISO文件到Linux测试系统,然后再Linux测试系统里安装这个ISO文件。所以就需要实现如何把文件从Windows系统传输到Linux系统中。

标签: python3 生成器

本文链接地址:https://www.jiuchutong.com/biancheng/375629.html 转载请保留说明!

上一篇:python生成式的send()方法(详解)(python生成器有几种写法)

下一篇:利用Celery实现Django博客PV统计功能详解(celery使用)

  • 财务报表申报错误怎么办
  • 广告公司个人所得税几个点
  • 所有者权益是
  • 员工交通费补贴标准
  • 国有企业改制资产评估增值税收规
  • 如何查发票是否被红冲
  • 房地产企业如何预缴土地增值税
  • 赠送车子需要过户吗
  • 商业汇票的使用范围
  • 货代行业红字冲正发票怎么做凭证
  • 净残值可以随意更改吗
  • 个人所得税计算器2023
  • 企业取得的信托计划分红缴企业所得税吗
  • 销售苗木属于什么行业
  • 补发工资如何申请
  • 营改增实施过程中的难点
  • 价外费用如何开普票
  • 地下建筑如何防潮
  • 代缴个税税务局奖励款怎么做账?
  • 应收账款待确认收入
  • 企业打给个人的费用如何节省个税
  • 无票收入的账务怎么处理
  • 小规模发工资超了怎么办
  • 固定资产双倍余额递减法计提折旧公式
  • centos编辑文本
  • nginx不支持ipv6
  • 绝地求生闪退怎么解决win10
  • antd怎么用
  • js时间格式转换时间戳
  • 代开的增值税怎么计提?
  • php面向对象面试题
  • vue项目eslint配置
  • 偷税行为五年后被发现要接受行政处罚吗?
  • 页面白屏可能原因前端
  • php图像
  • php面向对象的三大特征
  • PHP中strpos、strstr和stripos、stristr函数分析
  • 一般纳税人零申报怎么报税
  • 大前端技术
  • wordpress如何批量导入商品
  • 公司没有车,加柴油票可以抵扣增值税吗
  • 数据库 元数据
  • 增值税普通发票查询真伪
  • 培训发票税点
  • 购买股权溢价部分怎么做账
  • wordpress安装主题致命错误
  • 以前年度多计提折旧
  • 材料采购成本计算表
  • 逆回购划算吗
  • 个人独资企业计提的各种准备金支出不得扣除
  • sql注入攻击代码
  • 工资总额主要包括
  • 代开专票上的税额比电子缴款凭证上的税额少怎么调整?
  • 小规模纳税人出租不动产优惠政策
  • 固定资产税前一次性扣除会计处理与税务处理
  • 运输公司赔偿账务处理
  • 购买货物运输费计入什么科目
  • 出口退税免抵退税额要交城建税吗
  • 建筑行业会计怎么样,有前景吗
  • 计提工资时个税怎么处理
  • 进项做成了销项怎么调账
  • mysql handshake
  • 微软提示
  • win8.1关机
  • win8系统升级
  • Win10怎么设置高性能
  • windows server vista
  • windows图片密码
  • 雨林木风 winxp sp3 安装版 ys8.0
  • Linux如何查看硬盘分区
  • win10系统声音忽大忽小
  • SpriteBuilder Demo学习笔记
  • 1.常用
  • selenium自动化步骤
  • 减免性质代码怎么填
  • 物业收电费有什么猫腻
  • 出口退税申报时间是每月15号吗
  • 购电脑折旧的会计分录
  • 社会福利企业可以投资吗
  • 广东可以去吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设