位置: 编程技术 - 正文

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

  • 增值税发票认证在哪里
  • 属于印花税征税对象的是
  • 增值税欠缴
  • 不得公开发行股票的情形
  • 企业合并怎么处理
  • 收据税前扣除是多少
  • 不超45万是含税还是不含税
  • 公益性捐赠的税收优惠政策
  • 科目余额表一定要编吗
  • 待报解预算收入付款怎么做账
  • 自产货物用于本企业在建工程交增值税不
  • 物流企业账务流程
  • 公司已倒闭
  • 代缴税款是什么意思
  • 长期股权投资的账务处理
  • 外贸企业出口采购流程
  • 年度利润总额的12%
  • 手工做账流程图
  • 开红字发票如何调整收入?
  • 某企业原材料采用实际成本核算,2019年6月
  • 销售使用固定资产账务怎么处理
  • 医院其他应付款过高的原因
  • 公司购电缆用于生产如何记账?
  • 税务局每年都会大数据抽查吗
  • 投资利息收入要交所得税吗
  • 进项税额转出怎么填申报表
  • 水资源税的纳税义务人
  • 年终奖个人所得税怎么扣
  • 纳税人指什么意思
  • 货代发票税率是多少
  • 发票认证的三种方式
  • 三星笔记使用攻略
  • win7系统内存不足怎么解决
  • 一般纳税人开出普票可以抵扣吗
  • 广告牌费用会计分录
  • 酒店采购布草如何入账
  • 差旅费增值税专用发票少报销可以吗
  • 进口的增值税票能抵扣吗
  • 收入和支出怎么合计
  • 微信小程序不方便
  • 特许权使用费啥意思
  • 国产版忠犬八公观后感
  • 客户端调用axis1.4的方式
  • 蓝桥杯大赛2021
  • 命令who的含义
  • 怎么在网上增加办税人员
  • 现代服务业加计抵减最新政策2022
  • 先计提所得税还是先结转成本
  • 奖金没有做到工资里怎么入账
  • 电子发票查询真伪
  • 借款给别的公司怎么做账
  • 在sysservers中找不到服务器
  • 开票key
  • 企业所得税业务招待费怎么调整
  • 原始凭证的基本内容有会计分录吗
  • 工程设备租赁有哪些
  • 建筑施工企业会计第三版单旭课后题答案
  • 支付宝已经支付快递费怎么还支付
  • 银行存款日记账怎么记账
  • 代理进口业务会计分录
  • mysql数据库中SELECT * FROM是什么
  • centos7阿里云yum源
  • 批量查询sql语句
  • mac 显示器
  • 常见内存大小
  • xp系统插u盘没反应怎么解决
  • 如何快速恢复么
  • win10连接ubuntu20.04远程桌面
  • centos7 dns
  • Win10 Mobile 14342.1004快速预览版更新 提升电池续航
  • win10右键菜单快捷键
  • cocos2dx入门
  • 各浏览器网址
  • android之Java+html+javascript混合开发
  • node的理解
  • js定时器有哪些,区别及用法
  • jquery 触发点击
  • 苏州税务中心
  • 中国税务社保缴费app下载
  • 联通怎么在网上营业厅更改套餐
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设