在Python中,yield
是一个关键字,用于定义一个生成器函数。生成器函数可以通过使用yield
来产生一个值,并且在每次产生值后,暂停执行,保存函数的当前状态。然后,当再次需要生成值时,可以从上次暂停的地方继续执行。
下面是一个简单的例子,展示了如何使用yield
来定义一个生成器函数:
def my_generator():
yield 1
yield 2
yield 3
# 创建一个生成器对象
gen = my_generator()
# 使用next()函数获取生成器的下一个值
print(next(gen)) # 输出:1
print(next(gen)) # 输出:2
print(next(gen)) # 输出:3
# 当没有更多的值可以生成时,会引发StopIteration异常
在上面的例子中,my_generator
函数是一个生成器函数,它通过使用yield
关键字产生了三个值:1、2和3。当调用next(gen)
时,生成器函数会从上次暂停的地方继续执行,生成下一个值,并返回给调用者。当没有更多的值可以生成时,会引发StopIteration异常。
此外,生成器函数还可以使用for
循环来遍历生成器产生的值,而不需要显式调用next()
函数。例如:
for value in my_generator():
print(value)
上面的代码会依次输出1、2和3。