Python中的生成器是一种特殊的函数,它可以在需要时生成一个序列,而不是一次性生成整个序列,从而节省内存空间。

生成器的工作原理是使用yield语句,每次调用生成器函数时,它会返回一个生成器对象,执行到yield语句时会将结果返回给调用者,但是函数并不会结束,而是暂停执行,等待下一次调用。

例如,下面的代码定义了一个生成器函数,可以生成斐波那契数列:

def fib(n):
    a, b = 0, 1
    while a < n:
        yield a
        a, b = b, a + b

调用该函数时,可以使用for循环遍历生成器对象,获取每个斐波那契数列的元素:

for i in fib(10):
    print(i)

输出结果为:

0
1
1
2
3
5
8

需要注意的是,生成器函数只能被遍历一次,因为生成器对象在遍历完成后就被耗尽了。如果需要重新遍历,需要重新调用生成器函数获取一个新的生成器对象。

python生成器

原文地址: https://www.cveoy.top/t/topic/b0TD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录