位置: 编程技术 - 正文

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

  • 税务ukey与税控盘的区别
  • 年度纳税申报表A105000纳税调整项目明细表中,收入
  • 小规模纳税人可以开什么发票
  • 其他收益和营业收益
  • 合并报表营业收入怎么算出来的
  • 税控设备抵减增值税必须当月抵减吗
  • 小微企业减免所得税额是怎么算出来的
  • 待清算商户款项怎么做账
  • 获取清算行行号失败
  • 经营活动现金净流量公式
  • 企业的财务报表
  • 员工的油费补贴怎么算
  • 小规模纳税人房租发票税率是多少
  • 失业养老保险如何办理
  • 公车私用情形有哪些
  • 分公司收到总公司拨款怎么做分录
  • 业务费用包干制
  • 如果被客户骗了货款怎么办
  • 无法删除文件提示怎么办
  • win10家庭最新版本
  • 如何关闭windowsdefender防病毒
  • 研发销售型软件有哪些
  • 脑部病毒感染什么症状
  • windows11右键菜单设置
  • 销售使用过的固定资产可以开专票吗
  • php 模拟post
  • msstat.exe - msstat是什么进程 有什么用
  • 所有者权益类的期末余额公式
  • 贝纳克波斯图干红葡萄酒
  • 房地产开发间接费
  • 非上市公司股票期权个人所得税
  • 电维护费多少合法
  • php下载功能
  • 阿里云盘 icloud
  • php底层原理
  • 个人开发微信支付接口
  • 前端面试题基础篇
  • 学长学姐面试要注意哪些细节
  • 你应该知道的数学常识纪录片
  • php数据查询
  • 以旧换新方式销售金银首饰的消费税处理
  • 包装物为什么是无菌的
  • 销售产品用什么词形容
  • sql数据库移动
  • mongodb数据库操作遇到的问题和解决方案
  • 前端架构优化
  • 无偿提供建筑服务缴纳增值税
  • 预缴所得税亏损费用金额大会被监测到吗?
  • 差旅费津贴要交税吗怎么算
  • 个人所得额哪些要交税
  • 长期应收款计提减值
  • 财务费用的核算内容有哪些
  • 汽车买卖中介
  • 预付款预缴如何做账
  • 借款利息应计入
  • 集团公司对子公司总经理的绩效考核
  • 笔记本电脑bios更新
  • ghost后恢复
  • 将某软件添加到桌面
  • linux oracle图形界面
  • win8系统怎样
  • 怎么取消win10通知消息
  • win8系统特点
  • win7速度
  • windows8.1版本区别
  • windows下用CMD调用COM口
  • 如何自定义控件
  • ghost32命令参数
  • ie内存怎么清理
  • jQuery中trigger()与bind()用法分析
  • js onkeypress与onkeydown 事件区别详细说明
  • linux echo echo
  • unity soket
  • jQuery ajax MD5实现用户注册即时验证功能
  • android系统联网
  • unity接入安卓sdk
  • Python循环遍历的题
  • 青岛市国家税务局官方网站
  • 如何连续打印单据
  • 成都国税发票领取地点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设