17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Generators et iterators<br />

Iterators<br />

Structuration du code<br />

CHAPITRE 5<br />

À chaque fois qu’un objet est utilisé dans une boucle for, l’interpréteur génère en<br />

interne un iterator avec lequel il travaille. Un iterator est un objet qui contient une<br />

méthode next() qui est appelée à chaque cycle et qui renvoie la séquence, élément<br />

par élément. Lorsqu’il n'y a plus d’éléments, l’iterator déclenche une exception de<br />

type StopIteration.<br />

Les objets iterators peuvent être créés par le biais de la primitive iter() qui prend en<br />

paramètre tout objet compatible avec les itérations.<br />

Iterator sur objet liste<br />

>>> list_ = [1, 2, 3]<br />

>>> iterator = iter(list_)<br />

>>> iterator.next()<br />

1<br />

>>> iterator.next()<br />

2<br />

>>> iterator.next()<br />

3<br />

>>> iterator.next()<br />

Traceback (most recent call last):<br />

File "", line 1, in ?<br />

StopIteration<br />

Un objet compatible avec les itérations est un objet qui implémente une méthode<br />

__iter__(). La primitive iter() appelle et renvoie le résultat de cette méthode<br />

lorsqu’un objet lui est fourni en paramètre.<br />

Iterator de liste<br />

>>> list_ = [1, 2, 3]<br />

>>> iterator = list_.__iter__()<br />

>>> iterator.next()<br />

1<br />

>>> iterator.next()<br />

2<br />

>>> iterator.next()<br />

3<br />

>>> iterator.next()<br />

Traceback (most recent call last):<br />

File "", line 1, in ?<br />

StopIteration<br />

147

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!