位置: 编程技术 - 正文

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

  • 小规模纳税人取得增值税
  • 城建税的计税依据是增值税和消费税的和吗
  • 财务软件和报税软件区别
  • 工程施工科目有没有伙食费啊
  • 开增值税发票规格是否可以不用填
  • 过了汇算清缴期后发现错误
  • 上个月结余应该做到这个月收入里面吗
  • 滞留票税务局会罚款多少
  • 利润总额和未分配利润的公式
  • 增值税期初应补税额计算
  • 小规模纳税人每季度超过30万交税
  • 国家对工资发放的规定
  • 先结转损益还是先结转本年利润
  • 没有认证的增值税专用发票怎么做账
  • 应交税费应交增值税减免税款
  • 企业会计制准下增值税科目的核算
  • 零售不要发票如何报税
  • 福利费用发票可以抵扣
  • 对外贸易出口公司
  • 增值税代开扣款怎么报税?
  • 白蚁防治费怎么计算
  • 企业所得税期间费用利息收支
  • 民办非企业缴纳失业保险吗
  • 关联方利息支出
  • 不得抵扣进项税额是交税还是不交
  • 股东撤资退出
  • 汇算清缴专项附加扣除去年忘记填的能补填吗?
  • 计提个人社保会计分录实操
  • 资产负债率如何评价
  • win10待机久了自动关机
  • php utf8转unicode
  • live updater
  • php新手入门
  • 国家最高科技奖2018
  • php基于正则批量输出
  • 企业开办期间的税费
  • 请问酒厂销售酒怎么样?
  • php缩进
  • thinkphp6多语言
  • 反写必须15号之前吗
  • 现金折扣退回要考虑财务费用吗
  • 无追保理是投资还是投资
  • 全国信息技术服务业
  • 原始凭证的基本内容有会计分录吗
  • mysql导入sql文件命令
  • 太阳能发票图片
  • 税务机关多收税款几年可以要求退回
  • 地租钱不付如何为
  • 什么叫发票分割单
  • 让渡是什么
  • 会计一般采用什么科目
  • 员工报销培训费怎么做账
  • 什么是速动比率的概念
  • sql语句的基本语法
  • window mysql
  • macbook怎么修复磁盘
  • 电脑ios怎么安装
  • mac设置outlook默认邮箱
  • linux里cat命令
  • win7 如何截屏
  • win8.1核心版密钥
  • linux怎么修改主配置文件
  • win7 64位纯净版系统c盘空间显示与实际占用空间不对的解决方法图文教程
  • 深入解析windows第7版
  • 解决Extjs4中form表单提交后无法进入success函数问题
  • g8a1
  • CSS expression控制图片自动缩放效果代码[兼容 IE,Firefox]
  • powercli命令
  • 通过制作日晷我们可以探索发现一天之中
  • js拖拽效果
  • jquery元素选择器有哪些
  • android简单app实例
  • Jquery ajax请求导出Excel表格的实现代码
  • jQuery中each()、find()和filter()等节点操作方法详解(推荐)
  • 卷烟批发环节的消费税一箱150元
  • 金税盘软件怎么打开
  • 深圳纳税信息查询
  • 开票风险预警机制蓝色预警怎么办
  • 淮北税务局领导简介
  • 混凝土搅拌站如何结转成本
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设