Ответ 1
Да или next(gen)
в 2.6 +.
Очень простой вопрос - как получить одно значение от генератора в Python?
До сих пор я нашел, что могу получить его, написав gen.next()
. Я просто хочу убедиться, что это правильный путь?
Да или next(gen)
в 2.6 +.
В Python <= 2.5 используйте gen.next()
. Это будет работать для всех версий Python 2.x, но не Python 3.x
В Python >= 2.6 используйте next(gen)
. Это встроенная функция и понятна. Он также будет работать на Python 3.
Оба из них в конечном итоге вызывают специально названную функцию next()
, которая может быть переопределена подклассификацией. Однако в Python 3 эта функция была переименована в __next__()
, чтобы соответствовать другим специальным функциям.
Это правильный способ сделать это.
Вы также можете использовать next(gen)
.
Использовать (для 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
В питоне 3 у вас нет gen.next()
, но вы все еще можете использовать next(gen)
.
Немного странно, если вы спросите меня, но так оно и есть.