千家信息网

Python中的yield关键词怎么用

发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章将为大家详细讲解有关Python中的yield关键词怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。要理解yield的作用,你必须理解生成器是什么。在理
千家信息网最后更新 2025年11月10日Python中的yield关键词怎么用

这篇文章将为大家详细讲解有关Python中的yield关键词怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

要理解yield的作用,你必须理解生成器是什么。在理解生成器之前,必须先理解迭代器。

1.迭代器

当您创建一个列表时,你可以逐个读取它的项。逐项读取其项称为迭代:

640.webp

mylist是一个可迭代的对象。当你使用列表解析式时,你创建了一个列表,因此也是一个迭代器:

640.webp

所有你可以用"for... in ...."都是迭代器,包括列表、字符串、文件…等等。

这些迭代器非常方便,因为你可以随心所欲地读取它们,但是你将所有的值都存储在内存中,当你有很多值时,这就非常浪费内存了。

为了解决这样的问题,Python有了生成器的概念。

2.生成器

生成器是迭代器,这种迭代器只能迭代一次。生成器不会将所有值都存储在内存中,它们会动态生成这些值:

640.webp

它和列表解析式是类似的,只是用()代替了[]。但是,你不能在mygenerator中对i执行第二次,因为生成器只能使用一次:它print(0),然后忘记它,print(1),最后是4。

3.Yield

yield是一个与return类似的关键字,只是函数将返回一个生成器。

认真看完下面这个例子,你应该能完全明白。

640.webp

函数将返回一组只需要读取一次的值。如果你能将这个特性理解清楚,并将其应用到你的代码中,可能可以极大地提高性能,下次我们将介绍在什么时候该用它。

请注意示例中的第6行,在调用函数时,在函数体中编写的代码不会运行。函数只返回生成器对象,可别忘了这个重点。

最后,你的代码将从每次使用生成器时停止的地方继续。因此示例中第二次使用生成器的时候,我们的生成器已经完全没有值了。

所以最核心的逻辑如下:

for函数第一次调用从函数创建的生成器对象时,它将从头运行函数中的代码,直到达到yield,返回循环的第一个值。
随后的调用都将再次运行你在函数中编写的循环,并yield返回下一个值,直到没有要返回的值为止,就如我们上面的例子所示

关于"Python中的yield关键词怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

生成 生成器 迭代 函数 代码 关键 内存 对象 篇文章 运行 关键词 例子 只是 时候 更多 示例 存储 循环 不错 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 三星怎么清楚聊天数据库 网站服务器总是连接不上 怎么连服务器的共享文件夹 1.网络安全的定义 网络工程师和数据库工程师 信息安全软件开发实习生 论述数据仓库与数据库的区别 证券软件开发公司前十名 服务器磁盘容量不足怎么办 上海御吉计算机软件开发有限公司 扬州软件开发平台 教育部中小学网络安全研究所 维护服务器安全的方法 网络安全古典密码实验总结及心得 网络安全相对于其他工资 怎么引导联想云教室连接服务器 关于法律的中文数据库 汽车车载网络技术授课计划 苹果15.1无法连接服务器 连接数据库示例 pos机连接服务器失败什么原因 下周网络安全数据 大学社团网络技术 安卓手机数据库用什么软件 施工生产调度管理软件开发 小熊数据库 2008数据库重启电脑失败 数据库原理五大关系范式 clay粘土服务器怎么发消息 方舟服务器回收
0