位置: 编程技术 - 正文

浅谈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使用)

  • 公司房屋修缮账务流程
  • 企业购买产品
  • 内含报酬率与必要报酬率相等
  • 城建税计税依据扣除增值税期末留抵
  • 固定资产接受捐赠的计入什么科目
  • 金税盘怎样查询已开发票明细
  • 制造业的税率是多少啊
  • 普通发票作废影响额度吗
  • 缴纳增值税和附加税
  • 红字发票冲红需要收回原发票吗
  • 异地开发房地产会一直待在那个城市吗
  • 纳税筹划成本支出怎么算
  • 为企业担保
  • 建筑行业简易计税账务处理
  • 销售折扣怎么开
  • 收到办公用品的普票怎么入账
  • 建筑材料资源利用
  • 营改增后房产土地作价入股该如何做税务处理?
  • 预缴的企业所得税可以扣除吗
  • 空调安装企业能申请工程发票吗?
  • 小规模纳税人普票可以开3%吗
  • 印花税漏报了要罚款吗
  • 货运发票和提供建筑服务的专票备注怎么写?
  • 月末主营业务收入结转会计分录
  • 所得税亏损财务处理办法
  • 购进非税货物有折扣怎么做账?
  • 销售折扣与折让影响应收账款周转率吗
  • 网卡和网线都正确接法
  • 出租人负责维修
  • 公务车加油入什么科目
  • 出售货物货款预缴增值税
  • 什么是西孟加拉邦首府
  • 社保基数跟个税差1仟多有风险吗
  • pgadmin配置
  • 小微企业免征增值税优惠
  • 预付款能不能开票入账
  • mysql命令大全手册
  • 电子商业承兑到期后多长时间能收到款
  • 一次性用品可以做什么东西
  • 个体户单位性质代码
  • 开的票比实际支付的多,账务怎么处理
  • 认证发票抵扣有留抵税怎么做分录
  • 固定成本和变动成本举例
  • 审计库存现金盘点表
  • 房产契税什么时候退税
  • 把上级机关来文转给下级机关的通知
  • 差旅费算人工费吗
  • 财政授权支付的概念
  • 如何证明自己是中国人
  • 固定资产的特点有哪几个
  • 装修公司做账涉及科目
  • 公司买车可以抵税几年
  • innodb.trx
  • centos安装编译环境
  • winxp安卓
  • winnook.exe - winnook是什么进程
  • ubuntu 上不了网
  • mac ds_store
  • win8恢复出厂设置找不到恢复环境
  • win7打开软件速度没有win10快
  • cocos2dx4.0入门
  • opengl纹理叠加
  • js中事件的三要素
  • perl怎么读取文件
  • cocoscreator shader
  • js全局方法
  • nodejs最佳实践
  • Linux makefile 和shell文件相互调用实例详解
  • js实现倒计时60s
  • easyui表格
  • jquery查找方法
  • Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
  • python的idle打不开解决办法
  • jquery mobile教程
  • shell操作oracle数据库
  • 手机运行node.js
  • 刀具路径轨迹模拟
  • jq 鼠标事件
  • FileUtils文件工具类
  • 文化传媒公司能卖多少钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设