在Python中,要定义一个生成器函数,您需要在函数内部使用yield
关键字而不是return
。当调用一个包含yield
关键字的函数时,它不会立即执行,而是返回一个生成器对象。每次从这个生成器对象请求一个值时,函数会从上次暂停的地方继续执行,直到遇到下一个yield
关键字,然后返回yield
后面的值。
以下是一个简单的生成器函数示例,用于生成前n个斐波那契数列:
def fibonacci(n):
a, b = 0, 1
count = 0
while count < n:
yield a
a, b = b, a + b
count += 1
# 使用生成器函数
fib_gen = fibonacci(5)
for num in fib_gen:
print(num)
在这个例子中,fibonacci
函数是一个生成器函数,因为它使用了yield
关键字。当我们调用fibonacci(5)
时,它返回一个生成器对象fib_gen
。然后我们使用for
循环遍历这个生成器对象,每次迭代都会执行fibonacci
函数的一部分,直到遇到yield
关键字,然后返回yield
后面的值。