On Sat, Jul 13, 2002 at 07:07:36PM -0400, Guido van Rossum wrote: > Actually, not. Under "Resolved Issues" the PEP has this: > > - Once a particular iterator object has raised StopIteration, will > it also raise StopIteration on all subsequent next() calls? > Some say that it would be useful to require this, others say > that it is useful to leave this open to individual iterators. At the time this was discussed on the list has anyone considered the possibility of raising an exception? Something like 'IteratorExhausted'? If the current definition is ruled to be 'undefined' then an iterator MAY raise an exception in this case. Iterable objects can often serve as a replacement for lists in many places and even passed successfully to a lot of old code that was written before the iteration protocol. But an iterable object is not always a suitable replacement for a sequence when the code needs to iterate multiple times and the object is not re-iterable. This will fail in a very nonobvious way without raising an exception because an exhausted iterator looks just like an empty sequence to a for loop. I think this kind of errors should not pass silently. Yes, I have been bitten by this. Perhaps this was a result of overzealous use of iterators because I was so excited with them, but it's a real problem, not some contrived example. Oren
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4