Eh bien, j'utilisais la méthode itertools.cycle().next()
avec Python 2.6.6, mais maintenant que j'ai mis à jour vers 3.2, j'ai remarqué que l'objet itertools.cycle()
n'avait pas de méthode next()
.
Je l'ai utilisé pour faire défiler une chaîne dans la méthode spin()
d'une classe Spinner
. Donc, si nous parcourons le Tuple ('|', '/', '-', '\\', '|', '/', '-')
, il imprimera: |
, /
, -
, \
, |
, /
, -
, |
, /
etc...
J'ai recherché les notes de publication de Python 3.0, 3.1 et 3.2 et je n'ai remarqué aucun changement à ce sujet. Quand cela a changé? Y a-t-il une alternative simple pour obtenir les mêmes fonctionnalités qu'auparavant ?
Merci d'avance.
iter.next()
a été supprimé dans python 3. Utilisez plutôt next(iter)
. Dans votre exemple, remplacez itertools.cycle().next()
par next(itertools.cycle())
Il y a un bon exemple ici ainsi que divers autres portages vers python 3 astuces. Il compare également divers autres idiomes next()
dans python 2.x vs python 3.x
Dans Python 3.x, les itérateurs n'ont plus it.next()
. Utilisez plutôt next(it)
, qui fonctionne également dans Python 2.6 ou supérieur. En interne, cela appellera it.next()
in Python 2.x et it.__next__()
in Python 3.x.