📜  Python 生成器函数 - Python (1)

📅  最后修改于: 2023-12-03 15:34:12.965000             🧑  作者: Mango

Python 生成器函数 - Python

概述

在 Python 中,生成器函数是一种特殊类型的函数,它能够用来创建可迭代对象,也就是可以使用 for 循环进行遍历的对象。生成器函数以一种非常简单的方式来生成这些可迭代对象——它们使用 yield 语句来生成新的值。

生成器函数的工作方式与普通的函数有些不同。普通的函数在被调用时会立即返回一个值,并且函数的执行过程只会发生一次。而生成器函数则在被调用时不会立即返回结果,而是返回一个生成器对象。当使用 for 循环或者其他方式遍历这个对象时,Python 会自动调用生成器函数,并且在每次遍历时执行一次函数,直到函数执行完成或者遇到 return 语句结束。

生成器函数也可以使用 yield 语句来产生多个值。每次调用 yield 语句时,生成器函数都会暂停执行,并返回一个值给调用者。当下次遍历时,生成器函数会从上次暂停的位置继续往下执行。

示例

下面是一个简单的示例,演示了如何使用生成器函数来生成斐波那契数列:

def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b
        
f = fibonacci()
for i in range(10):
    print(next(f))

输出结果为:

0
1
1
2
3
5
8
13
21
34

在这个示例中,我们定义了一个名为 fibonacci 的生成器函数。在函数内部,我们使用 yield 语句来产生斐波那契数列中的每一个元素。在 for 循环中,我们通过 next 函数遍历了这个生成器对象,并打印了前 10 个斐波那契数列的元素。

结论

生成器函数是 Python 中非常有用的特性,它们能够让我们使用非常简单的方式来创建可迭代对象,并且使用 yield 语句可以让我们非常方便地生成多个值。如果你需要创建一个可迭代对象,建议你尝试一下生成器函数,它们会帮助你节省非常多的代码。