-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
になります。なぜこれが起こるのですか?
インデントを修正してください。 –
Plsは実際の字下げをポストしますか? – schwobaseggl
毎回新しい発電機を作成します。あなたはその違いを見ますか? –