位置: 编程技术 - 正文

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

  • 个人所得税纳税记录
  • 林业局会计咋样做账
  • 工业企业所得税优惠政策
  • 卖自用轿车要缴什么税
  • 津贴个人所得税怎么算出来的
  • 逆流交易合并报表抵消分录
  • 公司采购报销没发票
  • 建筑工程勘察费占设计费的比例
  • 购销行为的帐务处理如何做?
  • 工程设备租赁带什么手续
  • 年终奖社保怎么算
  • 企业垫付土地补偿款
  • 公司买包包送员工入可以计入什么科目?
  • 企业利用个体户走账
  • 关于工资薪金的情况说明
  • 公司按照实际利润额预缴企业所得税,这个实际利润额就是会计利润吗?
  • 固定资产进项发票怎么开
  • 公司的净资产怎么看
  • 购车装修能不能算固定资产
  • 房地产企业税负率
  • 外贸企业零退税怎么算
  • 零申报的企业所得税年报怎么填
  • 普票红字发票怎么写摘要
  • 已抵扣的增值税专票如何冲红
  • 计提固定资产折旧
  • 应付利息和应计利息怎么区分
  • 电信猫光信号灯不亮
  • 财务费用的冲减什么意思
  • 应交企业所得税和所得税费用区别
  • 王者荣耀中李白第二次离开
  • php是面向过程还是面向对象
  • 在禁用uac时无法激活什么原因
  • os线程是什么
  • php string
  • 微信公众平号平台
  • 应收账款和应付账款的管理
  • icon图标教程
  • 施工方可以向建设单位借款么
  • 发票金额有小数可以取整数吗
  • redis主从复制如何保证不丢失数据
  • gpt参数
  • 【深度学习】详解 MoCo
  • 微信浏览器支持webassembly
  • 对企业采取以旧换新方式销售的应税产品
  • 出纳各种费用如何归类
  • wordpress提示插件
  • javagui框架
  • 支付工程款的会计科目怎么写
  • 工程管理服务属于哪个行业
  • 失控发票未付款什么意思
  • 预收工程款怎么做账
  • 报关代理费进成本吗
  • 发票遗失复印件可以入账吗
  • 记账凭证如何填写样本
  • 在建工程的进项税额不再分2年抵扣
  • 什么是四大行业
  • 个人独资企业核定征收取消了吗
  • 会计核算和监督两项基本会计职能是相辅相成
  • 外贸企业怎么开出口发票
  • ghost怎么安装gho文件
  • 教你彻底消灭牛身上的蜱虫
  • windowsxp怎么用
  • windows 10 20h2推送
  • 什么是边角料
  • win10预览版好吗
  • unity小技巧
  • unity移动方法
  • 微信小程序基于spingboot
  • dos的命令大全
  • node中使用什么引入模块
  • 禁用javascript后果
  • nodejs+ts
  • android电话簿
  • 安卓手机如何查
  • android mvp mvc
  • jquery筛选器
  • comparable接口怎么用
  • 供暖配套费
  • 特价机票包含燃油费和机场建设费吗
  • 迅雷网站官网下载
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设