位置: 编程技术 - 正文

浅析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与税控盘的区别
  • 什么是虚开增票
  • 不含税的金额
  • 教育附加税税率多少?
  • 企业年报股东及出资信息要怎么填写
  • 住宿发票没有天数
  • 钱收多了退回去怎么说好
  • 个税隔一个月没申报这个月可以补上吗
  • 强制解除财务负责人
  • 赠送产品能直接用吗
  • 现金存入公司账户风险大吗安全吗
  • 客户把发票弄丢了,红冲重新开了会有什么风险
  • 一般纳税人当月只有进项没有销项怎么做账
  • 一台电脑上能装多个金税盘吗?
  • 普通发票和增值税专用发票有什么异同
  • 公账转私账可以撤销吗
  • 销售商品收到货款20000元存入银行
  • 个人将房产无偿赠与他人应交个人所得税吗
  • 跨省经营如何缴纳流转税?
  • 个体工商户怎样开发票
  • 房屋维修基金怎么申请使用
  • 收到分包公司工程发票收入怎么做账
  • 企业销售应如何做
  • 车辆哪些费用计税
  • linux系统的
  • win10关闭自动更新方法永久
  • 其他应付款转营业外收入需要交增值税吗
  • owmngr.exe - owmngr是什么进程 作用是什么
  • 汽车空调不制冷的原因有六种
  • 办理银行承兑汇票支付的手续费计入
  • 怎么计算应缴所得税
  • 微信怎么开小
  • 明细分类账户定义
  • 存货跌价准备的转销会计分录
  • 纳税检查调整的销售额确认收入吗
  • php操作excel
  • 计提投资者利润
  • swift 协议扩展
  • vue技术解密
  • 小规模纳税人房产税优惠政策2023
  • c语言的空指针
  • 财务章有几种样式
  • 一般纳税人企业所得税税率2023
  • 电子承兑汇票到期怎么收款
  • 适用会计准则或会计制度(填写代码)
  • Linux sqlite3 基本命令
  • 劳务工资缴税标准
  • 借款合同印花税优惠政策
  • 增值税普票税额可以抵扣税吗
  • 民办非企业单位是私立还是公立
  • 收付实现制的适用范围
  • 保险合同包含什么
  • 支付水电费会计
  • 无形资产的累计折旧
  • 未发货未收款先开具发票怎么账务处理
  • 扣除工程款说明
  • 未使用和未投入使用
  • 专门从事研发的公司
  • 增资扩股影响原股东的利益吗
  • 旅行社代订机票发票报销
  • 普通发票如何抵扣税
  • 新税法和新准则的关系
  • mysql 含有关键字
  • windows性能监视器怎么用
  • win7系统设置打印机共享
  • windows10经常假死
  • win10系统进程
  • dx12不支持dx11解决办法
  • 让xp系统自动修复软件
  • win10系统ie浏览器不见了
  • iptables -z
  • shader cull
  • linux中gzip的用法
  • linux shell -s
  • java learning
  • 刷android go
  • 事业单位录用备案表审核快吗
  • 民办非企业暂行
  • 深圳市百旺信投资有限责任公司
  • 为什么每年都要交车船税是什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设