位置: 编程技术 - 正文

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

  • 购销合同印花税最新政策2023
  • 中国注册税务师协会官网
  • 企业卖车需要交印花税吗
  • 进口货物再出口 增值税处理
  • 国家研发补贴政策
  • 调整应付账款折扣到营业外收入吗
  • 发票认证当月必须抵扣吗
  • 其他债权投资减值
  • 资产处置损益属于收入吗
  • 建筑企业异地预缴增值税计算
  • 居民企业核定征收企业所得税的项目有哪些
  • 软件出口税收政策
  • 销售报废车辆按多少计提销项税额
  • 逾期抵扣办理申请书模板
  • 进项抵扣怎么操作
  • 应付债券的利息调整怎么计算
  • 理财产品 会计分录
  • 增值税设备抵扣怎么抵扣
  • 公司做账是做什么
  • 公司房产税如何计算器
  • 税收分类编码怎么导出来
  • 销售换货怎么做账务处理
  • 个人名义去税务局开票
  • 营改增后小规模纳税人如何报税
  • 固定资产被政府查封
  • 增值税电子发票没有发票专用章
  • 怎么解决笔记本电脑卡顿问题
  • 存货跌价准备是谁的备抵账户
  • 一般纳税人接受固定资产投资时相关的科目可能有
  • 简介linux系统中的10个常用命令及功能
  • php的编辑工具有哪些
  • win10 ltsc版
  • amr文件什么意思
  • php查询今天日期
  • 前端uniapp写表格
  • 阿尔比恩洞的级别
  • 政府会计制度固定资产折旧方法
  • php身份证正则表达式
  • 如何在wordpress嵌入amazon链接
  • eyring模型
  • 个体工商户季报还是月报
  • 个人所得税年度申报什么意思
  • 增值税的滞纳金税率
  • python 函数的返回值
  • php中isset函数作用
  • 帝国cms采集教程
  • mongodb数据库中使用哪个数据库可以设置用户名和密码
  • 没有购销合同的原因有哪些
  • 纳税申报怎么做
  • 营改增清包工
  • 在建工程领用原材料税费怎么处理
  • 印花税处罚适用征管法六十四条规定
  • 建筑业清包工合同范本
  • 净利润递延所得税
  • 一次性付清的优缺点
  • 其他应收款余额在借方是什么意思
  • ppp项目政府可以不出资
  • 外购商品为什么是库存商品
  • SQLServer2000 报1053错误(服务没有及时响应或控制请求)的解决方法
  • mysql数据库的基本原理
  • win8出现问题需要重启
  • 有没有软件恢复
  • windows8.1开机
  • rapapp.exe - rapapp是什么进程 有何作用
  • launch.exe打不开
  • perl 获取参数
  • android 自定义spinner
  • 网络游戏数据包
  • js if语句怎么写
  • 原生js import
  • jquery使用css
  • jQuery实现获取table表格第一列值的方法
  • jquery示例
  • Django1.7+python 2.78+pycharm配置mysql数据库
  • jquery.js插件
  • 支付境外服务费代扣代缴增值税 会计凭证
  • 电子税务局待确认授权不能勾选
  • 淘宝店铺过户后身份证是谁的
  • 房子有注册公司可以卖吗
  • 电话号码公开是什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设