位置: 编程技术 - 正文

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

  • 企业租车能抵增值税吗
  • 赠与房屋再次出售的缴税问题有哪些
  • 利润分配会计处理例题及解析
  • 外购商品发放给员工 进项税额能不能抵扣
  • 劳务外包人员算不算从业人员
  • 进口产品销售需要什么资质
  • 个人收到银行承兑汇票
  • 购销合同印花税怎么算
  • 资本公积转增股本个人所得税
  • 增值税专用发票和普通发票的区别
  • 纳税筹划与企业决策
  • 特定资产收益权融资业务
  • 企业注销当月无法申报个税
  • 永续盘存制的含义
  • 什么是税收筹划风险?税收筹划风险的种类有哪些?
  • 酒店前台冲账发生错误怎么办?
  • 坏账确认无法收回的会计分录
  • 公司评级有什么用
  • 合同中的税费需要交税吗
  • 当月没有认证的发票要勾选吗
  • 网上买普票安全吗
  • 餐饮业开专票几个点
  • 开餐费发票要开具数量和单价吗
  • 汇算清缴已退税的还可以作废吗
  • 收到委托代销清单,确认收入的会计分录
  • 当期的费用
  • 每年的发票年底是不是就失效了
  • 代发保险款收入
  • 工商年报纳税总额怎么填写才正确
  • macos 关闭屏幕
  • 电脑无损音乐播放软件哪个最好
  • 免税收入税额的含义
  • 防伪税控开票系统技术维护费
  • thinkphp表单提交
  • php初学实例教程
  • PHP:Memcached::decrement()的用法_Memcached类
  • PHP:pg_copy_to()的用法_PostgreSQL函数
  • 财务人员如何审核合同
  • vue3+ts+vite
  • 利润表项目本期怎么算
  • 深入分析php优化模型
  • html5简单小游戏代码
  • map获取entry
  • 企业初期面临的主要问题
  • 定期存款怎么入门
  • 应收帐款出售给银行会计分录
  • 国外公司给国内个人汇款
  • 原材料账户该如何做账
  • sql server 2008怎么使用sql语句
  • mysql的lsn
  • 车辆购置税 购置
  • 外商投资有限合伙企业
  • 电子设备折旧残值率
  • 出口退税的会计处理
  • 工程施工企业外管证怎么办理
  • 按工人工资比例结转制造费用会计科目
  • 无形资产减值损失计入管理费用
  • 对外投资信息忘记填了
  • 盈余公积金计算方法
  • 缴纳注册资金印花税怎么做账
  • 什么样的原始凭证不能用
  • 会计备注一般写什么
  • winxp关闭自动更新方法
  • centos文档
  • windows磁盘如何分区
  • mac系统怎么清理Adobe残留
  • windowxp系统怎么设置开机密码
  • linux怎么使用ping命令
  • mmc.exe是什么
  • linux如何修改账户名
  • Win10锁屏壁纸怎么换
  • 在linux系统中命令
  • windows7压缩文件图标
  • java的gui框架
  • 背包 ui
  • 了不起的Nodejs 将JavaScript进行到底
  • css固定在底部
  • 基于javascript的毕业设计
  • 用python过滤列大于0的值
  • 新余契税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设