位置: 编程技术 - 正文

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

  • 公司注销股东收回公司车辆做什么账务处理
  • 全国税务师考试报名时间
  • 合伙企业的费用在何处扣除
  • 核定征收一般纳什么税
  • 津贴和补贴计入加班费吗
  • 样品费用会计分录
  • 银行汇票存款和银行存款的区别
  • 劳务工和临时工
  • 房地产预售房收入如何缴纳增值税
  • 商户办会员卡 商场承担责任
  • 销售旧货时的售后是什么
  • 进项税核定扣除试点
  • 国有企业的所得税怎么算
  • 本月工资下月发是什么意思
  • 税控盘的购买流程
  • 咨询服务税费多少
  • 当期可抵扣进项税额包括进项转出额吗
  • 增值税税额计入什么科目?
  • 一般商贸企业出口白酒要交税吗
  • win11比win10是更流畅了吗
  • hp tpn-c120笔记本
  • 怎么取消网络手动连接
  • 做汽车配件销售怎么找客户
  • PHP:xml_parser_create_ns()的用法_XML解析器函数
  • php输出当月日历
  • macos big sur怎么恢复出厂设置
  • 行政事业单位捐款支出怎么记账
  • 期间损益包括
  • 吸收合并重组
  • 股东出资未注明投资款可以通过验资报告处理么
  • 小程序报错怎么解决
  • 收到银行开的手续费发票怎么做分录
  • php返回数据给ajax
  • unity udim
  • vue中$route
  • linux调试工具有哪些
  • 专用发票跨月冲红给对方吗
  • 增值税系统技术维护费抵扣只能当月申报
  • 如何登记现金明细账
  • 开源 okr
  • python ide包括哪些
  • 安装配置mysql,检验是否正常安装
  • mongodb简单使用
  • 使用SqlServer CTE递归查询处理树、图和层次结构
  • 固定资产怎么确认价值
  • 包工包料意思
  • 所得税多交退回分录
  • 税控盘维护费280元怎么做账
  • 销售金银首饰增值税和企业所得税
  • 计提地税会计分录怎么做
  • 进口货物的完税价格计算公式
  • 房地产开发企业资质证书
  • 长期借款转其他应付款
  • 信用卡刷卡手续费是谁收取的
  • 已经抵扣的发票不见了怎么办?
  • 公司清算后能不能转让
  • 政府补助计入资本公积吗
  • 存货报废的会计分录怎么做
  • 无形资产可以占多少比例
  • 企业建账涉及哪些内容
  • MySQL PXC构建一个新节点只需IST传输的方法(推荐)
  • mac设置多个桌面
  • centos中如何查看ip地址
  • mac远程桌面mac
  • linux tcpping
  • unity 3d数学
  • 日历插件vue
  • 动态创建菜单
  • unity3d基础操作
  • qq聊天背景闪烁
  • 批处理压缩
  • unity study
  • javascript中window对象的子对象不包含
  • perl常用函数
  • javascript创建对象的三种方法
  • jquery遍历li
  • 电子专票票种核定
  • 银行流水怎么查
  • 票种删除需要怎么弄
  • 财税招商专员是做什么的
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设