位置: 编程技术 - 正文

浅析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邮箱发送
  • 投资企业流程
  • 附有退货条款的销售
  • typora修改背景颜色
  • 莱奇沃思田园城市
  • php5.4升级到php7
  • phpipam使用
  • 财务管理中成本控制的原则
  • 企业收取租金的未开具发票的怎么计算税款
  • 海关进口增值税如何入账
  • 投资收益属于营业外收入吗
  • java cookie
  • 对方开了红字信息表我们开发票怎么做账
  • 计算机视觉opencv 有什么项目
  • 专票减免政策
  • chrome插件开发拦截ajax
  • 补计提工资什么意思
  • 计提工资是什么时候计提
  • 企业附加税的税率
  • 上年多做了收入的事情
  • SQL server配置管理器打开TCP/IP后重启不了
  • mysql存储过程的作用
  • 需要计提坏账准备的有哪些科目
  • 个人增值税发票税率
  • 金税四期的主要功能
  • 查账征收和核定征收有什么区别
  • 弥补亏损账务处理流程
  • 公益基金会的发起人是谁
  • 关税 账务处理
  • 个人银行存款要手续费吗
  • 年度所得税未在第一季度所得税申报前汇算清缴
  • 外籍人员个税汇算清缴流程
  • 年度投资额看哪个科目
  • 承租人对融资租赁业务进行会计处理的方法有( )
  • 代扣代缴增值税申报期限
  • 航天金税电子发票怎么读入
  • 管理费用怎么结转到本年利润未分配利润里了
  • 业务招待费管理草案探讨
  • Mysql 数据库 拷贝 原文件
  • 电脑windows怎么查
  • vmware虚拟机不能用桥接模式
  • ubuntu20.4分区
  • window svn
  • window7主题变成xp了
  • win7 c盘打不开
  • 微信小程序实现账号密码登录
  • 深入理解bootstrap
  • jquery自定义
  • 调度器在操作系统中的作用
  • unity3d 代码
  • 关于Air端与android端的通信实现
  • javascript选项
  • javascript的简介
  • 手机端apk反编译工具_android反编译工具
  • androidstudio如何放大代码
  • python中简单的例子
  • 如何解决老公有外遇
  • 北京朝阳地税大厅电话
  • 办理跨区域事项报验
  • 跨县调动工作流程
  • 山西增值税优惠政策
  • 国家税务贵州省税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设