位置: 编程技术 - 正文

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

  • 递延所得税资产和负债怎么理解
  • 注册税务师考试科目
  • 技术服务费怎么算成本
  • 社保税款所属期限什么意思
  • 增值发票盖章有什么用
  • 以前年度费用调减
  • 新会计准则中计提减值如何回转
  • 行政单位特殊人工手机电话费是否可以报销
  • 在建工程预转固申请表
  • 技术服务费收入怎么确认收入
  • 纳税营业额包含免税营业额吗?
  • 个人代开普通发票需要出税费吗?
  • 有没有薪酬
  • 如何返还股东的出资款
  • 工程施工合同暂估价格入账会计分录
  • 公司用自己的设备投资怎么交税呢怎么做账
  • 验资报告办理一般需要多久时间
  • 间接生产费用包括
  • 外购无形资产如何摊销
  • 补缴纳以前年度企业所得税税率如何论定
  • 确认收入是收到款了吗
  • 贷款利息 发票
  • php二维数组遍历
  • 收到的销项负数要认证吗
  • 购买理财产品收到的利息分录
  • 什么叫即期结汇
  • 冲回上年多提的费用会计分录
  • 进项发票认证后多久可以申报
  • 变更营业执照中心怎么改
  • 企业所得税中的其他业务收入包括
  • 长期挂账的在建工程如何处理
  • vscode写前端代码,如何运行
  • cesium description
  • pytorch torch
  • 保税进料加工企业
  • 怎么样写合同书
  • 增值税的税目和税率
  • 其他应付款贷方余额表示谁欠谁
  • 企业计提养老保险分录
  • 帝国cms使用手册
  • mongodb从入门到商业实战
  • 税金及附加主要包括什么
  • 资本公积含义
  • 医保指的是啥
  • 增值税税控系统专用设备
  • 没有发票的支出怎么入账
  • 砖厂的会计分录有哪些
  • 其他业务收入的现金流放哪里?
  • 查定征收在哪一章
  • 公司之间的借款利息有最小限制吗
  • 负数发票要交税吗
  • 企业其他应付款增加的原因
  • 加计扣除要交企业所得税吗
  • phpmyadmin配置文件
  • sql server中Select count(*)和Count(1)的区别和执行方式
  • sqlserver 触发器 redis
  • mysql配置文件优化详解
  • Mysql5.7在Centos6中的安装方法
  • mysql最多多少行
  • ubuntu16连接wifi步骤
  • 进程aissca.exe
  • skyleap用不了
  • window7发布
  • cfg是什么格式,怎么打开
  • 电脑联想windows7
  • win8恢复出厂设置找不到恢复环境
  • win101607升级1909
  • xp系统组策略怎么打开
  • win7计算机窗口菜单栏
  • win7玩csgo掉帧怎么办
  • shell脚本if用法
  • angularjs2
  • unity的gui
  • dom基础知识
  • 劳动监察执法机构是什么
  • 如何在电子税务局添加办税人员
  • 网上申领的电子发票如何读入金税盘
  • 税务局发票邮寄回来怎么读入?
  • 地税局上班时间是几点
  • 2021年小规模纳税人优惠政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设