位置: 编程技术 - 正文

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

  • 工商注册经营部和公司的区别
  • 防伪税控系统
  • 企业之间拆借资金是什么意思
  • 一般纳税人的增值税征收方式的特点是
  • 资产负债表应收账款等于什么
  • 公司固定资产抵税
  • 缓交的社保费,包括个人部分
  • 不动产销售额怎么填
  • 公司注册资金实缴有什么好处
  • 虚开增值税立案标准
  • 不交住房公积金了能提取出来吗
  • 住房公积金的会计处理
  • 专利费代缴
  • 从基本存款账户之外的银行结算账户转账存入
  • 用友u8怎样查询上个月凭证
  • 小型微利企业免于填报
  • 合同不含税怎么算
  • 税控技术服务费计入什么科目
  • 个人独资企业优缺点有哪些
  • 进料加工贸易是什么意思
  • 主营业务类别商业是什么
  • 电子钥匙到期怎么办
  • 某公司购入一台需要安装的生产设备
  • 企业合并怎么处理
  • 金蝶软件怎么批量审核凭证
  • 使窗口最小化的快捷键
  • qtask.exe - qtask是什么进程 有什么用
  • php面向对象的三大特征
  • wind10画图在哪
  • 企业向股东发放现金股利会引起
  • echarts 柱状图滚动与gridlayout移动冲突
  • 应缴纳的房产税计入什么科目
  • php面向对象编程实验总结
  • php语言设计模式之单例模式
  • 原材料按实际成本核算需设置的科目包括
  • 期初金额和期末金额怎么算
  • python的协程
  • dedecms v6
  • 银行询证函快递费计入什么科目
  • 支付国外佣金的税率多少
  • 普通增值税发票会计科目如何写?
  • 企业承担残疾比例是多少
  • 发票税率开错了3%开成5%怎么办?
  • 开增值税发票规格是否可以不用填?
  • 处置固定资产增值税收入与企业所得税收入不一致
  • 收到分红的会计科目
  • 房地产行业概况
  • 当月进项发票忘记抵扣
  • 融资租入固定资产改建支出计入
  • 开办费怎么做帐
  • 销货清单和发票金额不一致
  • 员工房屋租赁合同
  • 企业中征码怎么查询
  • 小规模纳税人怎么申报个人所得税
  • 残保金是公司交还是员工交
  • 主营业务成本怎么结转本年利润
  • 应收账款平均余额公式
  • MSSQL SERVER 2005 数学函数整理
  • window部署服务
  • 从几个方面论述
  • 苹果15手机价格和图片颜色
  • windows8.1的设置在哪
  • rsmsink.exe - rsmsink是什么进程 有何作用
  • win10系统怎么安装qq
  • win8系统如何备份系统
  • javascript entries
  • extjs 为某个事件设置拦截器
  • 批处理在windows中的典型应用
  • perl 文件
  • node.js 模块
  • jqgrid获取选中行
  • python获取本地路径
  • 文件夹怎么变成
  • python simpy
  • android 字体设置
  • Android中的布局有哪些
  • 国家税务总局全国增值税发票查验平台
  • 国家税务局宝鸡市税务局
  • 服务礼仪包括哪三点
  • 一巩固三衔接
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设