位置: 编程技术 - 正文

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

  • 财务费用包含哪些项目
  • 售后维护费账务处理
  • 未达起征点附加税还需要扣税嘛
  • 汇票委托书会计分录
  • 有限公司能否申请破产
  • 小规模纳税人免征增值税政策
  • 税收分类编码不对发票可以用吗
  • 房地产企业还有未来吗
  • 车间一般性耗用材料会计分录
  • 补偿性余额利息的计算公式
  • 小规模季度不超过多少不用交税
  • 财务杠杆系数取值范围
  • 一般纳税人必须要交几个人社保
  • 房地产企业预付账款为负数
  • 物业公司减免物业费怎样开票
  • 计算所得税时扣除增值税附加怎么算
  • 补付工程款会计分录
  • 应付工资和实付工资的差额叫什么
  • 房子转租扣钱吗
  • 分公司使用总公司业绩投标
  • 个体户需要交钱吗
  • 无法安装字体,显示字体无效win10
  • 2014年最佳阵容
  • pull-hi
  • 拓展销售市场发生的业务招待费计入
  • giantantispywaremain.exe是什么进程 有什么作用 giantantispywaremain进程查询
  • vue修改打包后静态资源路径的修改
  • php files
  • 多对账工作的主要内容
  • 车船税单子什么样
  • 进口的应税消费品,于报关进口时缴纳消费税
  • 塞里雅兰瀑布图片高清
  • 普通增值税发票会计科目怎么写?
  • php计算数组中值怎么算
  • Joomla简单判断用户是否登录的方法
  • phpforeach
  • 什么叫相机标定
  • python web开发方向的第三方库有哪些
  • php实现定时自动刷新
  • 出口退税退运费的税吗
  • 进口设备增值税计算
  • php中使用什么函数来定义常量
  • Bootstrap table 控制表格高度固定(行高固定)并且不受数据量影响
  • 年终企业所得税怎么结转
  • 织梦如何使用
  • 企业代收水电费算不算收入
  • 卷票要盖发票专用章吗?
  • 利润分配的账务处理视频
  • 暂估入库的会计分录怎么写
  • 库存股增加记哪一方
  • 开发票价格能否比实际金额高?
  • 显示应退税额就是能退是吗
  • 小微企业营业外收入二级科目怎么
  • 应付暂估会计处理
  • 房屋租赁的注意问题
  • 将购买的货物用于交际应酬可以抵扣进项税额吗
  • 什么叫摊销
  • 支付投资者投入的款项
  • 塑料制品厂设计
  • 企业的源头
  • 办土地证费用会退吗
  • 债权投资和其他应收款的区别
  • windows怎么管理员权限
  • Mac OS X 10.9 Mavericks系统怎么激活?
  • 组策略怎么用
  • linux安装视频教程
  • win10玩游戏遇到问题需要重新启动
  • win10系统怎么打开软键盘
  • 关闭windows怎么关
  • Win10 Mobile 10586.312提前体验
  • js经典实例
  • js创建对象的三种方式
  • nodejs xhr
  • unity怎么设置多个关卡
  • javascript什么用
  • unity4.26
  • python ftp storbinary
  • Android ToolBar 的简单封装
  • 税务个人廉洁谈话记录内容
  • 金华市税务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设