位置: 编程技术 - 正文

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

  • 医疗批发企业增值税税负率大概是多少
  • 固定资产折旧会计处理
  • 车险发票不含车船税怎么记账
  • 税负率是含税还是不含税
  • 销售收入做账属于什么凭证
  • 发票确认平台勾选步骤
  • 发生福利费的会计分录
  • 取得虚开增值税专票如何税务处理
  • 购入农产品的增值税率
  • 销售企业需要交的营业税
  • 税务局每年都会查我公司虚开发票
  • 技术服务费可以计入研发费用吗
  • 一般纳税人年度开票限额
  • 运费专票当月如何入账
  • 进项税额抵扣不完怎么办
  • 专票当普票入帐有问题吗
  • 固定资产的折旧从什么时候开始
  • 在建工程产生废料收入的账务处理?
  • win7系统重启怎么还原系统
  • 收到人才引进补助会计分录
  • 促销费可以进项抵扣吗
  • 君子兰的养殖方法
  • php stat
  • 补缴免抵退
  • vue绑定css样式
  • 公司注销后所欠债怎么办
  • 期间费用计入产品成本的费用吗
  • php分页页码动态的实现
  • python答疑
  • 视觉slam有多难
  • 金税盘中的发票修复是什么意思
  • 保教费收入要交企业所得税吗
  • 其他综合收益属于什么类
  • 企业转让时应收账款如何处理
  • 尚未报送年度会计报表
  • php判断https
  • 安装centos7.2
  • 织梦自定义字段
  • 可供出售金融资产属于什么科目
  • 核定征收和查账征收可以自己选择吗
  • 建筑服务包括哪些内容
  • 建行e信通贴现高不高
  • 应收票据周转率公式
  • 记账凭证错误要重开吗
  • 农产品加计扣除1%怎么计算和会计分录
  • 确认收入一定要交增值税吗
  • 年数总和法和双倍余额递减法的公式
  • 会计调账是什么意思
  • 资本和资产的区别举例说明
  • 汽车几年折旧年限
  • MySQL数据库安装后通常默认的管理员用户名为
  • mysql 5.7.33安装
  • OpenBSD 3.8 release 架设FTP服务器
  • 重庆四日游最佳攻略超详细
  • 在系统注册表中注册
  • win7桌面怎么设置到d盘
  • win7怎么添加播放设备
  • windows8.1关机
  • win7系统如何更改默认浏览器
  • windows更新后桌面没反应
  • win7c盘突然满了怎么回事
  • windows10专业版界面预览
  • linux查看进程并杀死
  • 注册表cmd
  • perl怎么用
  • cocos 2dx
  • JAVA的OPENGL,JOGL入门实例----不断变色的点阵 (源代码)
  • 中间件 .net
  • jquery点击按钮跳转页面
  • unity behavior designer
  • 使用struts2+Ajax+jquery验证用户名是否已被注册
  • android 启动service
  • javascript define的用法
  • 电子税务局浏览器版本太低
  • 四川省税务局发票查询
  • 河北税务局是干嘛的
  • 怎样查税务师事务所信息
  • 地址变更去税务局办理
  • 江苏灵活就业医保交多少年
  • 白酒生产企业向百货公司销售试制药酒
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设