我正在探索在 python 中使用生成器,但我遇到了一个奇怪的问题。
以下代码怎么能按预期工作(例如,每次调用函数时都返回下一个斐波那契数):
def fibonacci():
current, previous = 0,1
while True:
yield current
current, previous = current + previous, current
fib = fibonacci()
for i in range(0,21):
print(next(fib))
但是当我直接在 for 循环中调用该函数时,如下所示:
for i in range(0,21):
print(next(fibonacci()))
它打印出 21 个零?
繁星点点滴滴
相关分类