位置: 编程技术 - 正文

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

  • 印花税科目会计分录
  • 其他综合收益影响所有者权益吗
  • 销售人员的福利项目包含什么
  • 金税盘维护费全额抵扣冲减的管理费用怎样结转
  • 租借车辆发生事故后的保险理赔问题
  • 银行理财收益算错兑付怎么办
  • 取得租金收入的会计分录
  • 企业如何加强应收账款的管理
  • 报关单上单位名称写千克还是kg
  • 偶然所得计税依据 包不包含增值税
  • 如何做现金支票凭证
  • 取得无形资产当期收入
  • 产品因质量问题造成损害的,应当承担责任的主体是
  • 企业名称变更后原名称还能使用吗
  • 国税局网上申报
  • 工程类一般纳税人可以开3%的税率吗
  • 房地产行业零税率发票
  • 买牛奶的公司会计怎么做账
  • 个税申报方式可以修改去年的吗
  • 连续3个月增值税留抵
  • 差额征税做账分录
  • 广告公司的收入增加原因
  • 公司废业
  • 购买商城购买化肥
  • 运行项目报错Couldn't import Django
  • os x yosemite dp6下载 os x 10.10 dp6官方下载地址
  • 苹果客服人工24小时
  • 酒店布草洗涤赔偿怎样折旧
  • 公司备用金申请单
  • wirecut.exe
  • windows 查询进程
  • 柬埔寨 吴哥窟
  • 房地产企业销售佣金税前扣除
  • vue3配置文件
  • CNN卷积神经网络/手写数字识别[VHDL][MATLAB]带源码
  • css deep深度选择器
  • html 教程
  • php图片添加水印的方法
  • 残疾证哪里发
  • 计提预付账款会计分录
  • 劳动仲裁支付的个人款项怎么做账
  • 政府专项补贴税收
  • Yii 连接、修改 MySQL 数据库及phpunit 测试连接
  • phpcms 生成首页
  • sqlserver2005简介
  • 购买的金税盘可以抵扣吗
  • 民办幼儿园账务月末结转
  • 库存现金太多违反什么规定
  • 安装生产流水线工程领用原材料
  • 抵扣认证的发票怎么做账
  • 职工薪酬的范围及内容
  • 事业单位会计岗位属于哪一类
  • mysql中自增
  • sql语句的查询语句
  • elccest.exe是间谍广告程序吗 elccest进程有什么作用
  • ias.exe是什么程序
  • win10系统应用和浏览器控制需要启用吗
  • 软raid怎么组
  • swstrtr.exe - swstrtr是什么进程
  • win8.1的开始菜单在哪
  • msoobe.exe是什么
  • Win7系统如何打开磁盘管理工具
  • centos安装软件教程
  • win7系统出现蓝屏
  • Win7系统如何查看隐藏文件
  • cocos2dx lua android glsurfaceview 截图
  • cocos creator截图
  • node定时任务框架
  • dos命令 for
  • python引用方法
  • javascript代码规范
  • 迅雷继续下载
  • 深圳个人税收完税证明网上打印
  • 代扣代缴企业所得税会计分录
  • 上海交电费户号8位数
  • 外汇管理数字外管平台怎么登录
  • 湖北国税发票手机查询
  • 广东省东莞市电子税务局官网
  • 车辆保险代收车船税会计分录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设