快速理解python中的yield关键字

想象一下,你正在做一个蛋糕,但是这个蛋糕非常大,你不想一次性把它全部做完,而是想做一点吃一点,yield 关键字就能让你做到这一点。

(插一句,yield本身最广泛使用的意思就是:产生、产量,其实就可以反映它的作用)

一、yield 的基本作用

在 Python 中,yield 关键字可以让我们的函数变成一个"生成器"。生成器就像一个特殊的函数,它可以记住自己做到哪一步了,然后下次从上次停下的地方继续做。

二、如何使用 yield

  1. 把函数变成生成器 :只要你在函数里用到了 yield,这个函数就不再是一个普通的函数了,它变成了一个生成器。

  2. 产生值 :每次函数执行到 yield 时,它会"产出"一个值,然后停下来。下次再调用这个生成器的时候,它会从上次停下的地方继续执行。

  3. 记住状态:当生成器停下来的时候,它会记住所有的变量和它们的状态,这样下次开始的时候,它就能从上次停下的地方继续。

三、一个简单的例子

python 复制代码
def count_to(max):
    count = 1
    while count <= max:
        yield count  # 还没结束但是先记着,这里用 yield 产生值
        count += 1   # 继续

# 创建生成器
counter = count_to(5)

# 迭代生成器
for number in counter:
    print(number)

这段代码会输出:

python 复制代码
1
2
3
4
5

每次循环,yield 都会产生一个数字,然后函数就暂停在那里。下一次循环开始时,函数会从上次停下的地方继续执行。

总结

  • yield 让函数变成生成器。
  • 生成器可以一次产生一个值,而不是一次性产生所有值。
  • 生成器会记住自己做到哪一步了,下次可以从上次停下的地方继续。

That's the end! ^-^ !

相关推荐
兵慌码乱4 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵5 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
FreakStudio9 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
用户03321266636710 小时前
使用 Python 从零创建 Word 文档
python
Csvn15 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽16 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
用户5569188175318 小时前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录
python·自动化运维
兵慌码乱1 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei1 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python