温馨提示×

python的def命令如何定义生成器函数

小樊
82
2024-12-12 00:47:37
栏目: 编程语言

在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后面的值。

0