难以理解这段代码的收益部分

Having trouble understanding the yield part of this code

这里是全新的品牌。编码新手,如果您不算 25 年前在学校学习过编码但从未使用过 IRL。

这是书中的示例 Python 简单步骤:

def fibonacci_generator():
    a=b=1

    while True:
        yield a
        a, b=b, a+b

fib = fibonacci_generator()

for i in fib:
    if i>100:
        break
    else:
        print('Generated', i)

我或多或少可以遵循生成器的定义(我知道它不是函数;这很重要,对吧?)以及 fib 变量和 for 循环的定义。

但我没有得到 yield 行:

while True:
        yield a
        a, b=b, a+b

有人可以帮我解决这个问题吗?例如:

while True:

while语句检查右边的值是否为真。如果是,则执行另一个循环,如果否,则跳出循环。此语句无限循环。

yield a

在生成器中,这有点像 return 语句,只是它让生成器函数继续执行。此语句使程序能够执行,以便生成器在执行之间为调用者提供值,而不必 运行 一直到结束(在本例中为无穷大)。

a, b=b, a+b

这只是一种为变量赋值的 Pythonic 方式。它被称为多重赋值,其工作方式如下:

variable1, variable2, ... varaibleN = value1, value2, ... valueN 

如果 a1 开始,下一次引用 a 是在 yield a,它将产生 1


aa, b = b, a + b 处分配了一个新值。