Подтвердить что ты не робот

Как получить одно значение за раз из функции генератора в Python?

Очень простой вопрос - как получить одно значение от генератора в Python?

До сих пор я нашел, что могу получить его, написав gen.next(). Я просто хочу убедиться, что это правильный путь?

4b9b3361

Ответ 1

Да или next(gen) в 2.6 +.

Ответ 2

В Python <= 2.5 используйте gen.next(). Это будет работать для всех версий Python 2.x, но не Python 3.x

В Python >= 2.6 используйте next(gen). Это встроенная функция и понятна. Он также будет работать на Python 3.

Оба из них в конечном итоге вызывают специально названную функцию next(), которая может быть переопределена подклассификацией. Однако в Python 3 эта функция была переименована в __next__(), чтобы соответствовать другим специальным функциям.

Ответ 4

Использовать (для python 3)

next(generator)

Вот пример

def fun(x):
    n = 0
    while n < x:
        yield n
        n += 1
z = fun(10)
next(z)
next(z)

должен печатать

0
1

Ответ 5

В питоне 3 у вас нет gen.next(), но вы все еще можете использовать next(gen). Немного странно, если вы спросите меня, но так оно и есть.