位置: 编程技术 - 正文

浅析Python中yield关键词的作用与用法(pythonyield理解与用法)

编辑:rootadmin

推荐整理分享浅析Python中yield关键词的作用与用法(pythonyield理解与用法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python yieid,yied python,pythonyield理解与用法,python yieid,python3 yield用法,pythonyield详解,python yieid,python yieid,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

为了理解yield是什么,首先要明白生成器(generator)是什么,在讲生成器之前先说说迭代器(iterator),当创建一个列表(list)时,你可以逐个的读取每一项,这就叫做迭代(iteration)。

mylist 是一个可迭代的对象。当使用一个列表生成式来建立一个列表的时候,就建立了一个可迭代的对象:

可以使用“for··· in ··· ”来操作可迭代对象,如:list,string,files,这些迭代对象非常方便我们使用,因为你可以按照你的意愿进行重复的读取。但是你不得不预先存储所有的元素在内存中,那些对象里有很多元素时,并不是每一项都对你有用。

浅析Python中yield关键词的作用与用法(pythonyield理解与用法)

生成器同样是可迭代对象,但是你只能读取一次,因为它并没有把所有值存放内存中,它动态的生成值:

看起来除了把 [] 换成 () 外没什么不同。但是,你不可以再次使用 for i in mygenerator , 因为生成器只能被迭代一次:先计算出0,然后继续计算1,然后计算4,一个跟一个…

yield 是一个类似 return 的关键字,只是这个函数返回的是个生成器。

这个示例本身没什么意义,但是它很清晰地说明函数将返回一组仅能读一次的值,要想掌握yield,首先必须理解的是:当你调用生成器函数的时候,如上例中的createGenerator() ,程序并不会执行函数体内的代码,它仅仅只是返回生成器对象,这种方式颇为微妙。函数体内的代码只有直到每次循环迭代(for)生成器的时候才会运行。

第一次迭代中你的函数会执行,从开始到达 yield 关键字,然后返回 yield 后的值作为第一次迭代的返回值. 然后,每次执行这个函数都会继续执行你在函数内部定义的那个循环的下一次,再返回那个值,直到没有可以返回的。

如果生成器内部没有定义 yield 关键字,那么这个生成器被认为成空的。这种情况可能因为是循环进行没了,或者是没有满足 if/else 条件。

总结

标签: pythonyield理解与用法

本文链接地址:https://www.jiuchutong.com/biancheng/383409.html 转载请保留说明!

上一篇:Python中 Lambda表达式全面解析(python lambda的用法)

下一篇:简单谈谈Python中的闭包(python的iloc)

  • 个人所得税申诉已受理多久出结果
  • 增值税出口退税款缴纳企业所得税吗
  • 收到上月保险赔偿款分录
  • 个税网络申报
  • 增值税为什么不重复征税
  • 车辆后期保养费用
  • 开办生产建设项目
  • 小规模纳税人可以开9%专票吗
  • 对公账户分为一般户和基本户
  • 外国人的纳税人识别号是护照号吗
  • 长期股权投资年度损益影响金额包括什么
  • 2021年购买车辆的进项税能抵扣吗
  • 取得高新技术企业
  • 小规模企业所得税按季度还是按年
  • 延期收款利息如何算
  • 零星工程实施流程
  • 银行 委托收款
  • win10ie浏览器没有internet选项
  • 电脑玩游戏卡怎么弄
  • 你需要来自system的权限怎么解决
  • 稿酬计入工资所得吗
  • 双网卡冲突会发生什么现象
  • win11触摸板不能用
  • php字符串赋值
  • 居民企业应纳税额
  • 销货方发票红冲操作流程
  • 山茶花的养殖方法盆栽
  • 招待费的范畴
  • linux命令tar zcvf
  • 委托代销商品两种方式会计分录
  • 大堡礁的现状
  • android_app.intro
  • 支付劳务费时是什么科目
  • 兰萨罗特岛的地理位置
  • 税务系统申报表
  • 推荐几个比较好用的
  • 关于增值税普通电子发票
  • 退回的货款应该记什么费用
  • 电子发票开出后如何查看
  • 印花税应计入哪些费用
  • 工程行业预交税款怎么算
  • 食堂账目怎么做
  • 认缴注册资本是什么意思
  • sql命令语句
  • 房地产销售老项目增值税
  • 乡村道路属于城市道路吗
  • 独立核算和非独立核算怎么查
  • 私人账户可以打钱到公司账户吗
  • 费用转销是什么意思
  • 委托收款背书和质押背书都属于转让背书
  • 房地产储备土地排名
  • 工会发放节日慰问品种类
  • 电汇凭证有效期
  • 新成立的公司哪个地方能查到
  • mysql oracle和sqlserver分页查询实例解析
  • 打开与关闭光驱怎么设置
  • xp系统多了explorer进程
  • win10用浏览器
  • ubuntu安装sz
  • 安装和配置eclipse集成开发环境
  • win8安装itunes
  • win7系统资源管理器无响应
  • win10一年更新一次
  • win8系统触摸板按键不能用
  • opengl es programming guide
  • 激发灵感的三种方式是什么
  • node.js使用的v8引擎是由哪个公司开发的
  • unity优化gc
  • javascript视频教程
  • 浅谈JavaScript事件的属性列表
  • dom操作的方法
  • unity3d ik
  • javascript面向对象精要pdf下载
  • 民办学校需要交工会经费吗
  • 20年灵活就业人员社保新标准
  • 按期申报和按次申报的区别
  • 国税地税征管体制改革方案全文
  • 从国外买东西回来卖
  • 青岛网上申请个体工商户
  • 地方文化包括哪几种
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设