Respostas:
Em Python <= 2.5, use gen.next(). Isso funcionará para todas as versões do Python 2.x, mas não para o Python 3.x
Em Python> = 2.6, use next(gen). Esta é uma função incorporada e é mais clara. Também funcionará no Python 3.
Ambos acabam chamando uma função especialmente nomeada next(), que pode ser substituída por uma subclasse. No Python 3, no entanto, essa função foi renomeada para __next__(), para ser consistente com outras funções especiais.
Esta é a maneira correta de fazer isso.
Você também pode usar next(gen).
Para obter o valor associado a um objeto gerador em python 3 e superior, use next(<your generator object>). chamadas subsequentes para next () produzem valores de objeto sucessivos na fila.
No python 3 você não tem gen.next(), mas ainda pode usar next(gen). Um pouco bizarro, se você me perguntar, mas é assim que é.
W1 = params.next()mas recebo um erroAttributeError: 'generator' object has no attribute 'next'