位置: 编程技术 - 正文

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

  • 小规模升级为一般人后之前取得的增值税专用发票抵扣
  • 报关单完成出口后收汇期限4月30日
  • 当月个税申报的是几月的工资表
  • 小规模季度30万免税
  • 职工福利费专票账务处理
  • 转回存货跌价准备为什么是可抵扣暂时性差异
  • 固定资产更换零部件的入账价值
  • 废旧物资增值税税收优惠政策
  • 非营利组织项目
  • 进出口企业必须有报检资质吗
  • 无偿赠送货物怎么做账
  • 小规模纳税人费用票怎么做账
  • 预缴增值税销售额
  • 公司举办的活动
  • 新公司成立前期人员配置
  • 营改增后小规模纳税人
  • 结转贸易方式
  • 固定资产计提折旧的会计科目
  • 居民供暖税率
  • 银行对公账户网上注销流程需要多久
  • 预收销货款属于负债吗
  • 出口退税的账务关键是什么
  • windows刷新桌面
  • 退回现金怎么写分录
  • win10怎么删除电脑开机密码设置
  • 公司资金被税务部门冻结
  • 教案的近义词是什么
  • maven视频教程
  • 华侨是否适用个人所得税
  • 投标文件中财务报表包括哪些内容
  • 【BEV】TPVFormer复现以及原理
  • 新企业所得税季初资产总额怎么填
  • okhttp源码
  • phpcms开发招聘
  • 行政单位收到银行的存款
  • 稿酬的支付方式
  • 小规模纳税人与一般纳税人的区别表现在小规模纳税人
  • 微信支付算库存商品吗
  • 施工企业的汇兑损失属于财务费用
  • 未开票收入缴纳增值税怎么冲减补开发票
  • 个人独资企业购入设备可以一次性计提吗
  • 合同负债 案例
  • 完工产品成本计算表怎么填
  • 企业转让专利需要交什么税
  • 汇算清缴期间费用福利费填哪里
  • 主营业务收入记多栏还是三栏
  • 物业公司管理费用都有哪些科目
  • 进项转出的原因是什么
  • 企业的其他应付款增加了说明什么
  • 残疾人就业保障金怎么申报
  • 老板在自己的公司做事
  • 行政单位年终奖的相关发放规定
  • 多打的投资款怎么入账
  • 给股东分利润怎么做账
  • 实收资本应补缴哪些税
  • mysql复制命令
  • 数据库备份sqlserver
  • 如何使用mac book
  • xpwy cd server已停止工作
  • mac打印预览快捷键是什么
  • mac触控板设置在哪
  • win8怎样设置将文件保存到d盘
  • win81with update
  • win7系统开机黑屏自检
  • 基于jQuery的设计与实现
  • unity3d基础操作
  • js定时器的两种方法
  • Android游戏开发教程
  • node.js net模块
  • Django中login_required装饰器的深入介绍
  • jquery keydown
  • linux网络编程有什么用
  • python内置函数format
  • 程序员 master
  • 教育费附加最新政策2023
  • 江西2022年选调
  • 现在是一般纳税人,属于小规模发生的业务怎么开票
  • 价税分离计算公式
  • 政府征用土地社保补偿标准
  • 物业监控不完善怎么提意见
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设