位置: 编程技术 - 正文

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

  • 个人开具服务费发票税率
  • 车辆购置税计入成本吗
  • 个人独资企业有章程没有
  • 应交税费负数调整
  • 自产的产品
  • 购进国产设备的增值税处理规定
  • 土地增值税多交了怎么处理
  • 高温费计税吗
  • 失业社保补助金领取条件
  • 银行卡收到养老金是什么意思
  • 医院减免医药费后还可以报保险吗
  • 融资租入固定资产
  • 会计档案的概念和内容
  • 企业生产总值怎么算出来的
  • 无形资产软件摊销年限的最新规定2021
  • 事业单位购买固定资产如何记账
  • 企业年金个税如何计提
  • 小微企业从业人数包括
  • 开票系统问题
  • 公司停产检修2天扣年假
  • 酒店购买矿泉水再卖给客人怎么处理
  • 跨月预缴如何做账
  • 社保缴费基数是什么意思,退休能拿多少
  • 增值税转型后入账价值
  • 企业合并怎么处理
  • 认缴制度下实收资本确认条件
  • 社保打的生育保险怎么做账
  • 销售产品配件计入什么科目
  • 苹果系统中英文切换快捷键
  • 内存条松动导致黑屏
  • 评估增值资产如何记账
  • win10重启按什么键重置
  • 路由器密码忘了怎么查到
  • linux中ls命令的意思
  • php教程 ftp 函数
  • paytime.exe - paytime是什么进程 有什么用
  • 白沙国家公园中标公告
  • 若依框架前后端分离手机号登录
  • codewriter怎么运行
  • php获取ip客户端ip地址
  • .php是什么
  • 税法规定个人收入超过3500元的超过部分应
  • 【BEV】TPVFormer复现以及原理
  • 基于深度学习的图像超分辨率——综述
  • afn取消请求
  • 浅析中国式现代化的理论价值与现实意义
  • python编程100例
  • vue-cli4创建项目
  • php二维数组foreach
  • 企业年产值与年收入比例
  • 税收返还会计处理办法
  • 资产支出加权平均数例题
  • 资产减值损失账户核算内容包括
  • 支付应付账款的文章怎么写的
  • 收到合同预付款怎么处理
  • 跨年的发票可以退税吗
  • 劳务派遣工资的发放单位
  • 开票资料需要哪些东西
  • 企业支付的佣金计算多少税率呢
  • 内部损益是什么
  • 期末留抵税额会计分录
  • 其他货币资金属于什么类科目
  • 原始凭证的主要内容包括
  • mysql中使用instr进行模糊查询方法介绍
  • 通过zeno实现加速屏幕显示操作教程
  • phpstudy中phpmyadmin无法访问
  • linux系统的介绍
  • win7系统隐藏文件夹怎么取消隐藏
  • u大师教程
  • windows xp删除所有数据
  • 苹果mac太卡
  • css+div布局的常用方法
  • opengl超级宝典第八版 pdf
  • JavaScript splice()方法详解
  • linux shell执行命令
  • javascript面向对象 第三方类库
  • js获取url参数值的两种方式
  • jQuery中each()、find()和filter()等节点操作方法详解(推荐)
  • 临沂学生医疗保险多少钱
  • 江苏徐州买房
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设