-1
def fib(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a + b
n = n + 1
return 'done'
print(next(fib(6)))
print(next(fib(6)))
print(next(fib(6)))
結果爲1,1,1
。 但是,如果我改變print()
如下內容:關於Python中的生成器
f = fib(6)
print(next(f))
print(next(f))
print(next(f))
結果將是1, 1, 2
。爲什麼會發生?
請修復壓痕。 –
是否需要發佈實際縮進? – schwobaseggl
您每次都創建新的生成器。你確實看到了這種差異,不是嗎? –