千家信息网

Python中yield 关键词有什么用

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,今天就跟大家聊聊有关Python中yield 关键词有什么用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。迭代器当您创建一个列表时,你可以逐个
千家信息网最后更新 2025年01月31日Python中yield 关键词有什么用

今天就跟大家聊聊有关Python中yield 关键词有什么用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

迭代器

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


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


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

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

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

生成器

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


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

Yield

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

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


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

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

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

所以最核心的逻辑如下:

1. for函数第一次调用从函数创建的生成器对象时,它将从头运行函数中的代码,直到达到yield,返回循环的第一个值。

2. 随后的调用都将再次运行你在函数中编写的循环,并yield返回下一个值,直到没有要返回的值为止

看完上述内容,你们对Python中yield 关键词有什么用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

生成 生成器 函数 迭代 代码 关键 内存 内容 对象 运行 关键词 只是 时候 示例 存储 循环 清楚 随心所欲 从头 例子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络技术海量信息传输 数据库系统工程师能做什么 厦门专业软件开发公司电话 mysql数据库系统安全性 无锡财务软件开发 上海统一软件开发检测中心 用脚本查数据库数据修改日志 往数据库传日期 网络安全区域vlan区别 中国医学生物文献数据库如何查询 大连摩牛网络技术有限公司电话 免费软件开发平台开源 学习软件开发需要记住的英语单词 杭州建桥网络技术 软件开发最全文档 海陵区直销网络技术价格查询 物联网网络安全厂商 天津数据库安全箱市场价格 存储过程如何删除数据库 淄博党员教育软件开发系统 视频存储服务器如何查看硬盘数量 沈阳市小程序软件开发外包 软件开发人员能力考核指标 软件开发有交换生吗 菏泽网络安全管理 查询ebs数据库版本语句 河南嵌入式软件开发报价 洞口软件开发职业中专 网络技术员行业分类发展趋势 数据库文件名
0