位置: 编程技术 - 正文

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

  • 增值税的附加税比例
  • 一般纳税人服务费税率
  • 采购材料入库会计分录怎么写的
  • 如果零申报
  • 两年前发票怎么红冲
  • 公司给员工租赁住房算成本吗
  • 去年发生的成本怎么算
  • 哪些小规模纳税人可以自行开具增值税
  • 发票复印件盖公章
  • 企业国有资产无偿划转办法
  • 子公司给总公司开发票
  • 个税的滞纳金怎么算
  • 契税的发票开错了还可以作废吗?
  • 减免附加税的账户有哪些
  • 集团控股公司
  • 快递费可以抵扣进项税额吗
  • win10回退到以前版本失败
  • 腾达路由器管理员密码
  • win10外接音响没反应
  • 专项储备属于什么科目代码
  • 销售商品分期收款,减免一部分货款怎么做账
  • 怎么制作网线接口
  • win11预览版怎么变回正式版
  • 冲红的会计分录
  • le启动exe是什么意思
  • mcappins.exe - mcappins进程是什么文件 什么意思.
  • 瑞芯微 8nm
  • 对出纳的要求
  • vue get方法
  • 企业出售使用过的固定资产的增值税处理
  • vue切换背景图片
  • 劳务费还没发可以先计提吗
  • 应交增值税明细科目怎么看
  • 增值税加计抵减企业所得税如何处理
  • php图片上添加文字的方法
  • 油气勘探开发
  • react 16新特性
  • 融资租赁首付租金定义
  • 生产型企业如何退税
  • 赡养老人专项附加扣除的标准
  • 调整后财务报表
  • 印花税怎么用
  • 以长期股权投资换入存货
  • 以前年度损益调整在利润表中怎么填
  • 支持疫情的句子 关于抗击疫情的句子
  • 长期股权投资减值准备
  • 企业资金如何运动
  • 支付收购股权款如何做账
  • 同花顺为什么有钱没法买
  • 公司社保收费标准
  • 业务招待费的列支范围
  • 冲上月暂估入账的 会计分录
  • 长期借款工程验收会计分录怎么做
  • 空调的折旧年限一般是多少年
  • 员工工资占公司收入
  • 销售部购买电脑一台分录
  • 工程结算和工程竣工决算的区别
  • where条件加判断
  • mysql 5.6 从陌生到熟练之_数据库备份恢复的实现方法
  • 快速释放剪贴蒙版快捷键
  • bios设置密码怎么设置
  • rundull32.exe
  • win8怎么切换hdmi
  • Win10怎么打开屏幕键盘
  • centos时间不同步的解决方法(centos时间同步)
  • Win10 Mobile 10586.36预览版怎么更新?
  • win 10移动版
  • Win10 Mobile 10586正式版即将向Insider用户推送
  • win7访问共享文件夹没有权限访问
  • cocos2dx粒子效果
  • easyui combotree加载静态数据问题(选不上)解决方法
  • 基于springboot的毕设
  • android下拉刷新上拉加载
  • 深入理解新发展理念,推进供给侧结构性改革
  • sed查找字符串
  • shell 整数赋值
  • 检查shell脚本有无语法错误
  • linux运行nginx
  • Python 安装模块
  • js模拟实现new
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设