yield
在Python中,yield
关键字用于创建生成器函数。
生成器函数是一种特殊类型的函数,可以在执行过程中暂停和恢复。
当调用生成器函数时,它返回一个迭代器对象,可以用来迭代生成器产生的值。
yield
关键字用于生成器函数的主体中,用于指定生成器应该返回的值。
每次遇到yield
关键字时,生成器函数会暂停,并返回yield
指定的值。
下次调用生成器函数时,它会从上次暂停的地方继续执行,直到遇到下一个yield
语句。
def generator_function():
...
yield value
...
在上面的代码中,generator_function
是一个使用yield
关键字指定生成器应该返回的值的生成器函数。yield
关键字后面跟着应该返回的值。
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
print(next(fib)) # 输出: 0
print(next(fib)) # 输出: 1
print(next(fib)) # 输出: 1
print(next(fib)) # 输出: 2
print(next(fib)) # 输出: 3
在上面的代码中,我们定义了一个生成器函数fibonacci
,用于生成斐波那契数列。
每次遇到yield
语句时,当前的a
值被返回,并且a
和b
的值被更新以生成序列中的下一个值。
我们通过调用fibonacci
函数创建了一个迭代器对象fib
,然后使用next
函数来迭代生成器产生的值。
yield
关键字只能在生成器函数内部使用。