yield
是Python中的一个关键字,它用于定义生成器函数。生成器是一种特殊类型的迭代器,可以在需要时动态地生成值序列,并且只在需要时才会计算这些值,因此非常节省内存。
当一个函数包含yield
语句时,该函数将被自动转换为生成器函数。每次调用生成器函数时,它都会返回一个新的生成器对象。然后可以使用next()
方法来逐个获取该对象所产生的值。每次调用next()
方法时,程序将从上一次暂停处开始执行,直到再次遇到yield
语句或者函数结束。
以下是一个简单的示例:
def simple_generator():
yield 1
yield 2
yield 3
gen = simple_generator()
print(next(gen)) # 输出1
print(next(gen)) # 输出2
print(next(gen)) # 输出3
在上面的代码中,我们定义了一个名为simple_generator()的生成器函数,并使用三个不同的 yield
语句来返回数字1、2和3. 然后我们通过调用next()方法来逐个获取这些数字,并输出他们。
需要注意的是,在每次调用 next() 方法之前, 必须先创建并初始化相应的生成器对象。否则程序将会抛出 StopIteration 异常.