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()
, как показано ниже:О генераторе в Питоне
f = fib(6)
print(next(f))
print(next(f))
print(next(f))
результат будет 1, 1, 2
. Почему это происходит?
Исправьте углубление. –
Pls отправляет фактический отступ? – schwobaseggl
Каждый раз вы создаете новые генераторы. Вы видите эту разницу, не так ли? –