[EMAIL PROTECTED] wrote:

> Het was juist mijn bedoeling Martijn zijn code in een klasse te
> gieten. Ik zie niet in wat daar 'vuil' van wordt.
> 
> Waarom is het beter om geen klasse te gebruiken?

Het lijkt me logisch dat als je kunt kiezen tussen twee oplossingen die
equivalent zijn, je voor de simpelste kiest. De class voegt niets toe
behalve boilerplate. Maar waarom makkelijk als het ook moeilijk kan :)

> De 'next' komt voort uit hoe ik het Iterator patroon ken.
> Maar dat is vast niet pythonisch genoeg.

Het iterator protocol is bijzonder Pythonic, maar je kent het blijkbaar
niet goed. Zie http://docs.python.org/lib/typeiter.html

Heel in het kort:

Iterable (ding waarover je kunt loopen):
- heeft een .__iter__() method die een iterator returnt

Iterator:
- heeft een .next() method die het volgende ding returnt, of
  StopIteration raised als er geen volgend ding is.
- heeft een __next__() method die self returnt (waarmee elke iterator
  dus gelijk ook een iterable is).

Jouw class was geen iterator, want de .next() method returnde niet "het
volgende item" en de __next__ method returnde niet self. Het was wel een
iterable, dus het werkte wel in de context van een for loop.

Just
_______________________________________________
Python-nl mailing list
Python-nl@python.org
http://mail.python.org/mailman/listinfo/python-nl

Antwoord per e-mail aan