阅读量:0
在Python中,yield
是一个关键字,用于定义生成器函数。生成器函数是一种特殊的函数,它可以在执行过程中暂停并保存当前的状态,然后在下一次调用时继续执行。使用yield
关键字可以将生成器函数转换为迭代器,使其可以逐个产生值。
yield
有两个主要的用法:
用于定义生成器函数:在函数体中使用
yield
关键字可以将函数转换为生成器函数。生成器函数在每次调用时都会返回一个生成器对象。通过调用生成器对象的__next__()
方法或者使用next()
函数来逐步执行函数体中的代码,当遇到yield
语句时,函数会暂停执行并返回yield
关键字后面的值,并保存当前的状态。下一次调用生成器对象时,函数会从之前暂停的地方继续执行,直到遇到下一个yield
语句或者函数结束。示例:
def generator(): yield 1 yield 2 yield 3 gen = generator() print(next(gen)) # 输出:1 print(next(gen)) # 输出:2 print(next(gen)) # 输出:3
用于迭代生成器对象:
yield
关键字可以在生成器对象中使用,用于返回值并将控制权交给调用者,然后等待调用者再次调用生成器对象。这样可以实现按需生成值的效果,而不需要一次性生成所有值。示例:
def generator(): for i in range(5): yield i gen = generator() for value in gen: print(value) # 输出:0 1 2 3 4
总结:yield
关键字用于定义生成器函数,并且可以在生成器对象中使用,用于返回值并暂停函数执行。通过迭代生成器对象,可以逐个获取生成器函数中yield
语句返回的值。