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'