位置: 编程技术 - 正文

浅析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硬盘的常见问题及解决
  • 待抵扣进项税期末要结转吗
  • 只有土地使用权房子拆了怎么办
  • mac菜单栏如何调整位置
  • 滴水观音的养殖方法选好浇水
  • ac1203路由器
  • 评价指标mae
  • 哪些情况下公司不能辞退员工
  • php转utf8
  • 确认的政府补助利得可以确认为收入吗
  • nvme安装方法
  • yolo训练教程
  • vite2.0 vue
  • ipcrm命令
  • php curlfile
  • php自定义函数格式是什么
  • 残保金交错了怎么办
  • 普通发票两联都盖章吗
  • 法人和自然人有什么区别通俗一点
  • 累计折旧当月增加当月减少
  • 土方工程开票
  • 项目支出可以列支差旅费吗
  • mysql创建存储过程sql语句
  • 在建工程待摊支出是什么意思
  • 购货方收到销售折扣发票怎么入账
  • 小规模纳税人工程款税率是多少
  • 开票方未缴税,为何要追回付款方的退税款
  • 建筑施工企业质量管理规范
  • 出租周转材料的租金会计科目
  • 预提费用汇算清缴前取得发票
  • 股东撤资后需要承担责任
  • 网上购物没有发票
  • 长期股权投资收益会计处理
  • 影响营业利润和利润总额的因素
  • 公司招待费用会计分录
  • 上月其他应付款本月怎么调回来
  • 非公司员工可以发提成吗
  • 垫付的开办费怎么做账
  • sql server语句查询
  • mysql实用教程
  • Linux/Mac MySQL忘记密码命令行修改密码的方法
  • sql查询字段值为汉字的
  • xp系统注册表空白怎么办
  • linux find命令忽略大小写
  • windows102021年更新
  • kazaalite.exe是什么进程 kazaalite进程有什么用
  • lsass exe
  • windows 8
  • jquery插件怎么用到自己的网站
  • nodejs xhr
  • Activity 的四种启动模式
  • asp.net runat
  • js秒数转时间
  • javascript中的函数包括内置函数和自定义函数
  • [置顶]星陨计划
  • python条件怎么算合法
  • 关于加强税务稽查工作的思考
  • 海关进口增值税专用缴款书在哪里打印
  • 国家税务总局郴州
  • 300万加币在加拿大能过什么样生活?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设