在 Python 中,生成器(Generator)是一种特殊的迭代器,它允许你逐个生成值,而不是一次性生成所有值并存储在内存中。生成器的核心是 yield 关键字,它使得函数可以暂停执行,并在需要时恢复执行,从而实现惰性计算和高效的内存管理。本文将详细介绍 Python 生成器的概念、yield 的作用以及生成器的常见用法。
1. 什么是生成器?
生成器是一种迭代器,它可以通过 yield 关键字逐个生成值。与普通函数不同,生成器函数在每次调用时不会重新运行整个函数,而是从上次暂停的地方继续执行,直到遇到下一个 yield 语句。这种特性使得生成器非常适合处理大数据流或无限序列,因为它可以按需生成值,而无需一次性将所有值加载到内存中。
示例 1:一个简单的生成器
Python复制
def simple_generator():
yield 1
yield 2
yield 3
# 创建生成器对象
gen = simple_generator()
# 使用 next() 函数获取生成器的值
print(next(gen)) # 输出:1
print(next(gen)) # 输出:2
print(next(gen)) # 输出:3
# 如果继续调用 next(),将抛出 StopIteration 异常
# print(next(gen)) # 抛出 StopIteration
在这个例子中,simple_generator 是一个生成器函数,它通过 yield 逐个返回值。每次调用 next() 时,生成器会从上次暂停的地方继续执行,直到遇到下一个 yield。
2. yield 关键字的作用
yield 是生成器的核心,它的主要作用是:

最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



