位置: 编程技术 - 正文

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

  • 企业借出去的钱收不回来
  • 驾驶培训 增值税
  • 预缴增值税后隔多久缴纳
  • 水电费进项税额怎么抵扣
  • 增值税发票可以抵扣多少
  • 平行式明细账
  • 企业如何进行利润分配的会记处理
  • 工人受伤医药费计入什么科目
  • 固定资产清理属于
  • 企业债务的利息允许从税前利润扣除是什么意思
  • 在建工程完工验收报告
  • 应交所得税的计算例题
  • 企业所得税税前扣除政策
  • 代扣代缴企业所得税10%
  • 如何区分劳务派遣和劳动合同
  • 铝合金失效分析案例
  • 房地产企业有投资性房地产吗
  • 个人储蓄存款利率
  • 万份收益是什么意思0.6
  • 公司负担劳务费的个税如何做分录
  • 职工教育经费取得证件之后补助多少钱
  • 劳动报酬个人所得税由扣缴义务人预扣预缴
  • 法院收到诉讼费多久可以收到传票
  • 去年的发票今年能用吗
  • 工会经费该怎么交
  • 咨询服务费需要什么附件
  • 2017年新准则下,收入确认的金额应是
  • 怎么关闭磁贴模式
  • 土豆发芽了能吃吗有没有毒
  • win10磁盘碎片整理打不开
  • thinkphp5数据库操作
  • 工业企业应付账款周转率多少合适
  • 怎么注册滴滴快车司机客户端
  • 个人销售非住宅无法提供原值怎么计算增值税
  • vue项目如何打包成dist
  • php静态函数
  • 分公司不能享受所得税优惠
  • 企业购进的商品是什么
  • 前端基础
  • vue实例教程
  • 基于chatGPT设计卷积神经网络
  • 什么情况下专票税率为1
  • 销售蔬菜企业怎么做
  • 转让土地使用权会计分录
  • 盈余公积企业所得税税率
  • 没有原始凭证可以记账吗
  • 开发支出与研发支出的区别
  • 主营业务收入借贷方
  • 个人所得税完整申报流程
  • 生产成品出库的会计分录
  • 保理公司的钱来自哪里
  • 企业合并的流程
  • 水利建设基金申报表哪里
  • 现金折扣怎么做账
  • 去年多计提的费用
  • 转出未交增值税和未交增值税区别
  • 预计负债初始计量的最佳估计数的确定
  • 打印银行电子流水发到别人邮箱,能看到我的账户余额吗
  • 给员工单独买的西装会计分录
  • 营业外支出的具体内容
  • 资产负债率比率
  • 仓库周转率是什么意思
  • win7系统开机后黑屏只有鼠标指针可以移动
  • win10预览版退回正式版
  • 为什么开机会提示无信号
  • vim显示中文乱码
  • macbook内部
  • windows10预览版怎么样
  • win8.1安全模式怎么进入
  • win10系统更改
  • unity局域网多人游戏
  • windows下安装nas
  • 类似愤怒小鸟的小游戏
  • java arraysort
  • js对象属性值
  • javascript var
  • 安卓手机管家删除的照片怎么恢复
  • 国家税务总局,湖北省税务局
  • 票表比对不通过代码999
  • 2020年税务系统关闭
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设