位置: 编程技术 - 正文

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

  • 评估增值对净利有影响吗
  • 公司承担个税的账务处理
  • 网上代增值税专用发票流程
  • 待处理财产损益借贷方向
  • 小规模教育培训计划
  • 有营业额有成本怎么算成本占比
  • 应收股利在资产负债表中填在哪里
  • 收到促销费方怎么做账
  • 税务申报有什么技巧
  • 发票存在哪些税务风险?
  • 上月暂估收入本月开票增值税实操
  • 开红字发票如何调整收入?
  • 半成品转成品会计分录
  • 余利宝怎样
  • 社会团体收到的投资款怎么入账
  • 冲减预付账款怎么记账
  • 劳保统筹费用
  • 应收账款多收的钱怎么写分录
  • 员工考试报名费计入什么科目
  • 小规模纳税人附加税会计分录
  • 长期股权投资年度损益影响金额包括什么
  • 暂估入库会影响利润吗
  • 利润总额就是会计准则吗
  • 转让旧固定资产怎么做账
  • 应收款项包括哪些内容,各自有何特点?
  • 工资中的话费补助是什么
  • 如何使用腾讯手机管家
  • 内账进项税不设置怎么账务处理
  • 应收账款的差额计入哪里
  • 工程公司更换单位怎么办
  • Linux Mint Cinnamon中安装MATE桌面详细步骤
  • centos apache配置文件
  • 360se进程太多
  • 公司为员工发放生日福利
  • php改编码
  • 职工教育经费是不是教育费附加
  • cmd more命令
  • 公司请的临时工
  • 土地增值税预征税率一览表
  • 未开票交税怎么做账
  • distinct用法及搭配
  • 递延所得税资产和递延所得税负债
  • 报账单大写金额负数填写方式
  • 交易性金融资产属于流动资产
  • 同一控制下合并报表恢复留存收益
  • 增值税抵扣勾选最晚日期
  • 结算价格的确定原则
  • 股权投资所得是什么
  • 长期应收款计提减值
  • 企业股权转让收入企业所得税
  • 房租已付未收发票可以待摊费用吗
  • 应收账款多久收不回来作为坏账
  • 出口退税进项税都抵扣了怎么办
  • 留底税额怎么入账
  • 关于废止有关排污收费规章和规范性文件的决定
  • 营业外支出有哪些费用
  • anddroid.process.acore进程停止什么意思
  • win8系统切换桌面
  • explorer.exe进程出错
  • centos 软件源
  • linux如何给网卡配置ip地址
  • win10一周年版本
  • perl keys
  • linux中命令行
  • 批处理界面
  • pycharm中文教程
  • python中的单下划线和双下划线
  • js 上传
  • unity unity3d
  • jquery使用css
  • python中按下某个按键
  • python for windows
  • 基于javascript的毕业设计
  • 国家税务总局财政部公告2023年第11号
  • 贵州网上税务局官网登录
  • 车船税是电子版的怎么年检
  • 公司注册后多久要去税务局登记
  • 办理供票资格申请
  • 社保工资申报错了可以重新申请吗
  • 发票开票系统可以查询上一年发票吗?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设