位置: 编程技术 - 正文

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

  • 一般纳税人转为小规模纳税人
  • 哪些情况可免征增值税
  • 企业所得税是什么意思
  • 计提房产税会计分录怎么做
  • 房屋租赁的发票备注怎么写
  • 不抵扣勾选怎么撤销
  • 主营业务收入体现在资产负债表哪里
  • 企业所得税的申报方式
  • 金蝶专业版怎么导入备份账套
  • 企业所得税按月还是按季度申报
  • 房屋建筑物折旧率计算
  • 代销手续费如何开票
  • 自产农产品加工后仍属于附注的农产品,免税吗?
  • 无发票材料可以入材料账吗
  • 跨年暂估收入如何调整
  • 负债减少在什么方
  • 企业支付小额劳务费税率
  • 公司给员工的奖品是否要扣税
  • 残疾人保障金缴纳比例是月1.5%
  • 企业账户短信提醒可以用别人手机号吗
  • 一般纳税人的增值税应纳税额等于
  • 主营业务税金及附加怎么算
  • 如何防止虚开发票 等舞弊行为?
  • 滞纳金账务处理
  • 政策性搬迁的会计实用报告
  • 没有对公账户怎么办
  • 个人汇算清缴已经做了公司怎么改申报
  • Win10打开浏览器后自动弹出查找框
  • 应收账款余额包括预收账款
  • 向境外支付技术服务费怎里面的增值税怎么入账
  • 股票期权行权的基本每股收益怎么算
  • 企业所得税具体纳税筹划案例
  • 付临时工资怎么入账
  • 购买材料发票未到如何做账
  • 现金日记账采用三栏式
  • centos下file_put_contents()无法写入文件的原因及解决方法
  • 吉野是哪里
  • curl error6
  • 第一季度季初资产总额和第一季度季末同一个数吗
  • 确认的政府补助利得可以确认为收入吗
  • 机器学习实战练手项目
  • 文件不知道在哪怎么找
  • 银行存放中央银行准备金的会计处理
  • mysql中regexp_substr函数的使用
  • 税控设备抵减增值税必须当月抵减吗
  • 运营费的税率
  • 佣金怎么收税
  • 苹果响应机制
  • springcloud分布式微服务组件
  • 企业其他应收款包括哪些
  • 行政事业单位职工工伤有哪些待遇
  • 账务处理程序是指什么
  • 待处理财产损溢借贷增减方向
  • 银行存款日记账怎么记账
  • 利润表中财务费用中的利息费用和利息收入
  • 盈余公积和未分配利润合起来构成
  • mysql删除有外键关联的数据
  • Linux下mysql5.6.33安装配置教程
  • 电脑bios怎么关
  • centos怎么扩容
  • 重装win7系统后鼠标键盘不能用
  • centos7怎么修改用户权限
  • windows10 2021预览版
  • win7网络不能用怎么办
  • Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
  • vue2里面ref的具体使用方法
  • javascript中attribute和property的区别详解
  • 关于中国天气的新闻报道
  • jquery父节点
  • javascript简明教程
  • python解析excel文档
  • js对象的constructor
  • android退出程序代码
  • Android SimpleAdapter
  • 内蒙古国家税务
  • 办理税控盘的流程
  • 河北省职称证书电子版
  • 国家税务局令第16号文
  • 深圳电动车怎么注册登记
  • 租房交税是房东交还是中介交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设