位置: 编程技术 - 正文

浅谈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分钱
  • 税务系统1+1+5
  • 土地闲置费能否扣除
  • 企业转租房屋如何开票
  • 积分兑换内容
  • 别人帮我们公司代定机票怎么做账
  • 工商营业年报怎么做
  • word中的引号方向不对
  • 经营费用与营业收入区别
  • 应收账款怎么做分录
  • 跨年发票能不能报销
  • 固定资产折旧计提时间
  • ue4 像素流并发
  • 生产车间报销费用
  • 固定资产前期购买的后期入账怎么入?
  • 单用户结构是什么
  • php二维数组的遍历
  • flex布局子元素height100
  • 多开票金额会计分录
  • xml格式化输出
  • 代收税款是什么意思
  • 为什么我会选择那个对我一般的男人结婚
  • wordpress限制ip访问
  • 农民工专用账户回执单
  • 残疾人就业保障金申报时间
  • 现金流量表本年累计金额怎么算
  • 条形码费用属于哪个科目
  • python爬虫入门教程
  • 筹办期发生业务怎么办
  • 民办非企业的税务登记国税还是地税
  • 固定资产与固定资产净值的区别
  • 企业存货核算范围
  • 什么样的纳税人属于小规模纳税人
  • 如何加强存货管理,提高存货周转率
  • 工程施工企业外管证怎么办理
  • 公司从员工工资扣水电费
  • 专票遗失没有认证能用吗
  • 体检费可以开个人吗?
  • 税控设备设置在哪儿
  • 买给员工吃的零食内容怎么写
  • 工程尾款要计入什么科目
  • sqlserver通用的删除服务器上的所有相同后缀的临时表
  • ubuntu支持软件
  • Mac安装不了iTunes
  • linux git教程
  • windows超级管理员默认密码
  • xp直升win7
  • xp系统无法预览图片
  • centos7安全
  • windows错误1058
  • 20150405农历
  • opengl模块加载失败
  • lessons there是什么意思
  • js计算字符串长度 汉字长度
  • unity 3d教程
  • 如何在python中运行程序
  • python 效率优化
  • js的delegate
  • 广东省电子税务局app下载手机版
  • 怎样在江苏智慧人社上停保
  • 厦门怎么查询自己名下电动自行车
  • 江苏税务缴费小程序
  • 国税手撕发票图片
  • 铁路检察院和普检哪个好
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设