位置: 编程技术 - 正文

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

  • 小规模纳税人销售已使用固定资产
  • 纳税标准怎么算
  • 娱乐行业缴纳的税收
  • 关税消费税增值税计算公式
  • 记账王怎么查询凭证
  • 收取境外技术服务费如何
  • 收到的房租增值税专用发票可以抵扣吗
  • 企业所得税税率多少
  • 外币借款汇兑差额计入什么科目
  • 企业的党员活动有哪些
  • 独立账户负债核算内容
  • 多交附加税怎么做会计分录
  • 机器设备如何计提折旧
  • 现金支票存根如何填写
  • 公司租金收入交多少税
  • 营业资金账簿印花税减半
  • 只转让地上的建筑怎么办
  • 融资性售后回租按什么缴纳增值税
  • 资产处置损益和营业外收支的区别和联系
  • 资金清算款项
  • 出口退税过期了怎么办理
  • 贴息收据税前扣除是什么
  • 公司暂估成本过高,如何处理
  • 无法使用内置管理员账户打开micr
  • thinkphp paginate
  • 招待费专用发票需要认证吗
  • 评估价格是按原值还是净值
  • 注册资本增加了
  • 律师异地办案家属要跟着吗
  • 固定资产折旧企业所得税税前扣除标准
  • 捐资民办学校可以盈利吗
  • php保存session
  • 浅谈php中的错误处理方法
  • 提示框架
  • 应收账款管理费会计分录
  • alex研究原文
  • springboot项目结构讲解
  • nlp track
  • 公章盖的字不完整有效吗
  • swoole扩展安装
  • 土石方工程开票范围
  • 逾期超过一年
  • 免征增值税的项目可以开专票吗
  • 延期缴纳税款的问题
  • 多缴所得税怎么算
  • 合同补充协议印花税怎么交
  • 经营范围没有的项目开票了会怎么样
  • 个人代人开普票个税怎么算
  • 个体户开公账户每个月要申报吗
  • 暂估原材料,材料成本如何冲
  • 销售返利的会计分录 东奥
  • 合并报表问题
  • 折扣 会计处理
  • 汇算清缴前取得暂估发票
  • 营改增对建筑业税负的影响
  • 购置办公大楼,会计处理
  • 无发票的费用怎么处理
  • 私人贴现利息如何交税
  • 工伤 保险赔付
  • 京东卖家怎么开普通发票
  • debian9.6安装教程
  • DBCC CHECKIDENT 重置数据库标识列从某一数值开始
  • window7 32位系统
  • mac开机声音怎么取消
  • win7安装sqlserver2000没反应
  • babylon.exe进程有什么作用 babylon进程是什么文件
  • xp系统怎么关闭fn
  • -mtime +3详解 linux
  • 怎么查看opengl版本
  • python爬虫教程
  • javaScript事件机制兼容【详细整理】
  • 测试下载速度很快,实际下载很慢
  • Unity3D游戏开发标准教程
  • viewpager自动滑动
  • 未缴税税务说明书
  • 广西职称申报系统入口220
  • 山东济南税务局投诉电话
  • 安徽国税局发票查询系统
  • 广西教师初级职称申报时间
  • 办图书馆怎么审批
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设