�旧 �考文章

Python 中 yield 的用法很� return,都是�供一个返回值,但是 yield 和 return 的最大区别在于,return 一旦返回,则代�段执行结�,但是 yield 在返回值以�,会交出 CUP 的使用�,代�段并没有直接结�,而是在此处中断,当调用 send() 或者 next() 方法之�,yield �以从之�中断的地方继续执行。

在一个函数中,使用 yield 关键字,则当�的函数会��生�器。

下�生�一个�波那契数列。

def fib(n):
    index = 0
    a = 0
    b = 1

    while index < n:
        yield b
        a,b = b, a+b
        index += 1

生�器对象:

fib = fib(100)
print(fib)

打�出�的结果是一个生�器对象,并没有直接把我们想�的值打�出�。

<generator object fib at 0x7fef20062ac0>