Відповіді:
У 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'