位置: 编程技术 - 正文

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

  • 读懂增值税
  • 小规模纳税人征税率为多少
  • 农民专业合作社属于什么企业类型
  • 未开票收入以后必须开票吗
  • 汇算清缴补交税款,怎么调整报表教程
  • 免征的附加税是什么
  • 融资租赁承租方增值税处理
  • 软件企业收到先征后返的增值税税款是否要缴纳企业所得税
  • 滞纳金可以个人承担吗
  • 电子承兑汇票付款流程
  • 写字楼出租可以给租户注册吗
  • 子公司向母公司借款对合并报表的影响
  • 轿车计提折旧
  • 并购重组协议样本
  • 印制宣传册
  • 出口零税率是什么意思
  • 出口样品可以申请专票吗
  • 补缴去年附加税及滞纳金
  • 土地增值税地价扣除
  • u盘写入扇区错误
  • 资产评估报告包括
  • 为离职员工代缴社保 论
  • Win11 Build 22000.65更新体验:汉化更完善,右下角返回桌面回归
  • php是基于
  • 销售点的增值税计算公式
  • 股权投资差额怎么算
  • Vue Admin Template关闭eslint校验,lintOnSave:false设置无效解决办法
  • 如何知道是干皮还是油皮
  • php忘记密码功能
  • sed多个命令匹配条件格式
  • php单例模式
  • 签劳动合同员工突然离职怎么办
  • 织梦模板如何安装
  • python中numpy.empty()函数的用法
  • 新建账簿的具体步骤
  • 应收账款红冲什么意思
  • 以房租入股公司怎么交税
  • sql优化口诀
  • 生活服务的行业
  • 开了发票不做收入的账务处理是?
  • 按利润总额的10%怎么算
  • 设计部工资计入哪个科目
  • 境外服务费代扣代缴所得税怎么做账
  • 分期购车会计分录小规模
  • 待摊费用和预提费用都属于资产类科目
  • 纳税实务的涉税业务分几类
  • 资产减值准备怎么提
  • 其他应付款跨年了
  • 疫情期间公司购买物品
  • 代发工资的手续流程
  • 退回的附加税能退回来吗
  • 主营业务收入是含税还是不含税
  • 汇算清缴帐务处理
  • 当月开通的业务当月能取消吗
  • 什么是小微企业
  • 固定资产净残值最后怎么处理
  • mysql官方监控工具
  • sqlserver控制器名称
  • linux/fs.h
  • 有效减少win8关机时间的方法分享
  • 微软出win9了吗
  • ultraiso刻录音乐到dvd
  • mac的虚拟机
  • cmos设置密码开机密码
  • macbookair如何恢复系统
  • win1021年更新
  • 如何调整输入法框的大小
  • win8如何打开任务管理器
  • perl文件操作
  • perl中\s+
  • 简述android应用的常用开发模式及其优缺点
  • linux系统监控脚本
  • js新开一个窗口
  • unity2018预制体
  • jquery写网页
  • 安徽营业执照网上怎么申请
  • 分类所得税和综合所得税的优缺点
  • 消费税申报详细流程图
  • 退休军人免门票吗
  • 日本海关关税税率表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设