位置: 编程技术 - 正文

浅析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)

  • 餐饮业税务申报
  • 小规模纳税人超500万后何时认定为一般纳税人
  • 小规模残疾人交多少税收
  • 设定受益计划会计处理案例
  • 进项税额计入其他应付款是什么意思
  • 视同销售收入计入会计利润吗
  • 公司开承兑需要多长时间
  • 资金账簿印花税每年都要交吗?
  • 雇主责任险保费计算公式
  • 公司罚款作为一种对过错方式的处罚
  • 一个公司可以有几个公章
  • 小规模银行存款多笔小金额财务费用可以合并记账吗?
  • 企业所得税哪些不可以税前扣除
  • 调整期初数怎么做会计分录
  • 红字发票信息表是销方还是购方开
  • 房屋装修费是否分摊到地下车位成本
  • 个人劳动供给曲线图
  • 股票属于以下哪一类金融工具
  • 高新技术企业补助需要交所得税吗
  • 建筑保温材料施工工艺
  • java 调用go
  • 临时用工账务处理流程
  • 对于小型微利企业的建议
  • 圣米厄尔教堂
  • 若依原创
  • thinkphp框架入门
  • 开源项目有什么用
  • 税务函调异常怎么处理
  • 服务器部署环境
  • 微软回应
  • 企业办理工程价款流程
  • 研发支出什么时候转管理费用
  • 金税盘开票系统复核人员设置在哪里
  • 董事会会费应计什么科目
  • 本月确认收入 发票下月开
  • java中file的用法
  • 销售费用和管理费用占比多少合理
  • 交税交多了如何申请退税
  • SQLServer 2008中通过DBCC OPENTRAN和会话查询事务
  • sql表添加字段
  • 库存现金错账怎么调整
  • 材料暂估入库的附件需要哪些资料
  • 建筑企业预缴所得税税率是多少
  • 出口退免税的税种包括增值税消费税企业所得税
  • 代建制取费标准
  • 分公司交纳的管理费用
  • 库存现金主要账目有哪些
  • 进项税认证怎么按税率统计明细
  • 小规模纳税人缴税的分录
  • 辞退福利计入什么明细费用
  • 增值税是什么的抵减项目
  • 免税店为什么没有发票
  • 小规模纳税人交通运输服务税率
  • 公司开办期间的住宿费会计分录
  • 企业购买土地如何缴税
  • 当你想弥补想还清
  • 怎么判断政府
  • 日记账自动生成
  • sqlserver 附加数据库 只读
  • win8装不了itunes
  • windows vista server
  • dockers容器
  • 文件选项夹在哪里
  • centos6.5桌面版安装教程
  • 英文xp系统中文语言包
  • win10更新需要重启怎么办
  • linux shell脚本实例
  • win7设备管理器里面没有网络适配器
  • win7系统如何添加虚拟网卡
  • css查找元素
  • css总结笔记
  • unity3d apk
  • 简单又实用的
  • javascript面向对象编程指南 pdf
  • jquery里面的$是什么意思
  • jquery实现简单Tab切换菜单效果
  • 欢迎使用微信支付
  • 陷阱类过关游戏
  • 智能财税证书含金量如何
  • 免税收入要不要交水利基金?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设