Je sais que c'est embarrassant de savoir pourquoi cela ne fonctionne pas? W1 = params.next()mais obtenez une erreurAttributeError: 'generator' object has no attribute 'next'
En Python <= 2.5, utilisez gen.next(). Cela fonctionnera pour toutes les versions de Python 2.x, mais pas pour Python 3.x
En Python> = 2.6, utilisez next(gen). C'est une fonction intégrée, et c'est plus clair. Cela fonctionnera également en Python 3.
Les deux finissent par appeler une fonction spécialement nommée next(), qui peut être remplacée par le sous-classement. Dans Python 3, cependant, cette fonction a été renommée en __next__(), pour être cohérente avec d'autres fonctions spéciales.
Pour obtenir la valeur associée à un objet générateur en python 3 et supérieur, utilisez next(<your generator object>). les appels suivants à next () produisent des valeurs d'objet successives dans la file d'attente.
Ce n'est pas si étrange. Python 3 est censé casser les choses et n'autoriser que le meilleur code plus clair. Ne pas avoir de compatibilité descendante est le point de quelques changements de rupture.
W1 = params.next()
mais obtenez une erreurAttributeError: 'generator' object has no attribute 'next'
En Python <= 2.5, utilisez
gen.next()
. Cela fonctionnera pour toutes les versions de Python 2.x, mais pas pour Python 3.xEn Python> = 2.6, utilisez
next(gen)
. C'est une fonction intégrée, et c'est plus clair. Cela fonctionnera également en Python 3.Les deux finissent par appeler une fonction spécialement nommée
next()
, qui peut être remplacée par le sous-classement. Dans Python 3, cependant, cette fonction a été renommée en__next__()
, pour être cohérente avec d'autres fonctions spéciales.la source
Utiliser (pour python 3)
Voici un exemple
devrait imprimer
la source
C'est la bonne façon de procéder.
Vous pouvez également utiliser
next(gen)
.http://docs.python.org/library/functions.html#next
la source
Pour obtenir la valeur associée à un objet générateur en python 3 et supérieur, utilisez
next(<your generator object>)
. les appels suivants à next () produisent des valeurs d'objet successives dans la file d'attente.la source
En python 3, vous n'avez pas
gen.next()
, mais vous pouvez toujours utilisernext(gen)
. Un peu bizarre si vous me demandez mais c'est comme ça.la source