Ответы:
В 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(<your generator object>)
. последующие вызовы next () производят последовательные значения объекта в очереди.
В python 3 у вас его нет gen.next()
, но вы все равно можете использовать next(gen)
. Если вы спросите меня, это немного странно, но так оно и есть.
W1 = params.next()
но получаю ошибкуAttributeError: 'generator' object has no attribute 'next'