位置: 编程技术 - 正文

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

  • 可供出售金融资产和长期股权投资
  • 房地产开发公司排名
  • 未入账的固定资产处理的财务处理
  • 增值税普通发票和专用发票有什么区别
  • 资产负债表中其他流动资产包括哪些科目
  • 一般纳税人临时工工资怎么入账
  • 税务变更需要哪些材料
  • 公司取现备用金违法吗
  • 股东多交投资款处理
  • 原材料当废品卖怎么处理
  • 公司发年终奖怎么发朋友圈
  • 增值税普通发票税率
  • 自助开税票流程
  • 健身行业的税务政策
  • 个人所得税自行纳税申报
  • 生产企业出口发票数量开错有什么影响
  • 计提坏账准备和发生坏账准备分录
  • 一般纳税人几个点的税
  • 收到政府征地补偿款
  • 支票付款的弊端
  • 宣传用品发票包括哪些
  • 融资租赁增值税优惠政策
  • 出售废品收入
  • 废旧物资收购价目表
  • mac如何配置
  • 投入资本回报率是总资产报酬率吗
  • 企业取得的利息收入 用什么科目
  • 工资总额包括哪些福利费
  • php怎么定义全局变量
  • 购买低值易耗品现金流量计入
  • 融资租赁会计处理小企业会计准则
  • 布列塔尼岛屿
  • 税控减免怎么做账
  • gridview怎么连接数据库
  • 小规模纳税人交税怎么做会计分录
  • linux php redis扩展
  • php 伪造HTTP_REFERER页面URL来源的三种方法
  • 公司收不到的账款而发不出去怎么办
  • 发票抬头为个人的纳税人识别号
  • 公司账号能给个人打款吗
  • cms是前端还是后端
  • 报销备用金的摘要
  • 现金支出的账务处理
  • 实收资本印花税税率
  • 个人所得税的征税范围
  • 销售返利及发票开具如何进行会计处理?
  • 公司欲购买一台设备,现在一次性
  • 开具发票的原则有哪些呢?
  • 无形资产摊销如何操作
  • 住宿发票费率是多少
  • 收到发票未抵扣,收票方也可以开红字信息表吗?
  • 应付职工薪酬都要报个税吗
  • 什么是代扣代缴税收缴款凭证
  • 增值税代扣代缴范围
  • 预付账款为什么属于资产类
  • 销售暂估业务处理
  • 企业微信收款如何交税
  • 科目汇总表账务处理程序登记总账的依据是
  • 联营企业和子公司哪个好
  • 注册公司认缴和实缴的风险区别
  • navicat远程连接oracle
  • 配置windouws update
  • 电脑出现bootbcd
  • win8系统如何查看电脑型号
  • windows2008和win8
  • linux下VSFTP 530 Permission denied错误的解决办法
  • cocos2dx-js
  • jquery怎么写
  • unity3d官方教程
  • js中的json
  • 安卓静态库
  • unity怪物自动攻击
  • android iframe
  • java回收机制原理
  • jquery easing
  • jquery ui和jquery easy ui
  • 拆迁户契税减免政策去哪里办理
  • 浙江国地税联合电子税务局
  • 网上怎么开电子一票通
  • 河南电子税务局电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设