位置: 编程技术 - 正文

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

  • 小规模纳税人要交增值税吗
  • 进口设备退税如何账务处理?
  • 其他综合收益算营业利润吗
  • 无偿使用厂房用交税吗
  • 所得税汇算清缴后发现有误怎么办
  • 财务软件续费怎么记账
  • 公司转账给法人用途写什么
  • 长期待摊费用摊销年限规定
  • 老板从公司拿钱怎么拿税最低
  • 进口货物的应纳增值税
  • 空白作废什么意思
  • 已扣缴税额
  • 三包范围内的维修费谁出
  • 实收资本未完全到账,需要缴纳印花税吗
  • 增值税减免明细表怎么填
  • 个人营业税是什么意思
  • 企业提取的盈余公积是什么会计科目
  • 外贸企业代理出口销售业务发生的费用
  • 现金流量表的填写视频
  • 个人转让无形资产增值税税率
  • 商场现金收入如何计算
  • 农产品加计扣除政策2023最新
  • 跨期费用审计调整分录
  • 开户许可证复印件是什么
  • 向其他股东购买股权
  • 2021年个人社保代扣失败
  • 餐饮发票免税能报销吗
  • 境外公司在境内取得的收入如何交税
  • 投资性房地产的后续计量从成本模式转为公允价值模式的
  • 个人免征增值税起征点
  • 单位租房的房租怎么入账
  • 进项税额转出是负数是什么意思
  • 商品房缴纳维修基金的规定
  • win10显示无法连接蓝牙
  • p指针后移的语句
  • 企业所得税具体纳税筹划案例
  • php的json_encode
  • nginx配置tp5
  • react组件库有哪些
  • rep p
  • 增值税减免附加税用计提吗
  • 绿化公司属于哪个行业
  • phpcms采集教程
  • 所得税做账是否需要发票
  • 税控盘 金税盘
  • 收到天使投资账务处理
  • 发票使用范围指什么
  • 土地出让金如何缴纳
  • 冲减以前年度利润
  • 销售商品发生的运输费计入什么科目
  • 公司购买银行理财产品收益交什么税
  • 受托开发软件一般做什么
  • 赠送商品给客户怎么写分录
  • 应收票据和应付票据可以对冲吗
  • count(10,2,5)
  • MySQL execute、executeUpdate、executeQuery三者的区别
  • windows主进程rundll32总是用麦克风
  • 使用筷子就餐会不会传染乙肝病毒
  • win7桌面怎么设置到d盘
  • xp系统开机后不停重启
  • winxp回收站在哪里
  • mac的vmware
  • win7窗口大小怎么设置
  • window8输入法怎么设置
  • Linux怎么在家目录创建目录
  • win7电脑键盘失灵怎么解决
  • windows8.1卸载软件
  • 红石数据
  • 微信小程序实现文件上传
  • shell脚本入门详解
  • 微软官方app
  • js怎么检查错误
  • 安卓绘图软件推荐
  • 一步步教你用乐高拼个摩托车
  • js中的substring
  • android设计模式与最佳实践 电子版
  • 请问关于煤炭的法律法规
  • 江苏省税务局电子发票
  • 太原公交车咨询电话号码
  • 工会经费支出审批制度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设