在Python中,`yield`是一个关键字,用于在一个函数内部创建一个生成器(generator)。生成器是一种特殊的迭代器,允许你按需生成值,而不是一次性生成整个序列。使用`yield`的关键字可以使函数在执行过程中暂停和恢复,这使得函数可以像迭代器一样工作。下面是一个简单的例子来解释这个概念:
```python
def simple_generator():
yield 1 # 生成器返回第一个值 1
yield 2 # 生成器返回第二个值 2
yield 3 # 生成器返回第三个值 3
# 创建生成器对象
gen = simple_generator()
# 使用for循环迭代生成器对象
for i in gen:
print(i) # 输出:依次输出 1、2、3
```
在这个例子中,`simple_generator` 是一个生成器函数,它使用 `yield` 来产生一系列的值。当你创建一个生成器函数并调用它时(就像我们上面所做的那样),这个函数并不立即执行所有的代码(它并没有预先计算所有值)。相反,它返回一个生成器对象,你可以像迭代任何其他序列一样迭代这个对象。每次迭代时,生成器函数会运行直到遇到下一个 `yield` 语句,然后返回那个值。下一次迭代时,它会从上次暂停的位置继续执行。这使得生成器特别适合于处理大量数据或需要延迟计算的情况。它们也节省了内存,因为它们不需要一次性存储整个序列。