可能重复:
Python yield 关键字解释
有人可以在这里向我解释一下 yield 语句在这段代码中的实际作用:
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a+b
for number in fibonacci()
: # 使用生成器作为迭代器;打印号码
到目前为止我的理解是,我们正在定义一个finonacci()
没有参数的函数?在我们定义的函数内部a
,b
等于 0 和 1,接下来,虽然这是真的,但我们正在让a
. 这实际上在做什么?此外,在产生a
? a
现在等于b
,而b
现在等于a + b
。
下一个问题,对于 number in fibonacci()
,这意味着函数中的每个数字还是什么?我同样对产量和“数量”实际上在做什么感到困惑。显然,我知道这意味着fibonacci()
打印数字中的每个数字。我实际上是在不知道数字的情况下定义数字吗?
谢谢,如果我不清楚,对不起。顺便说一句,它适用于 Euler 项目,如果我知道如何很好地编程,这将是一件轻而易举的事,但我正在努力学习这一点。