Guido van Rossum wrote:

A minor sticking point - I don't like that the generator has to
re-raise any ``StopIteration`` passed in. Would it be possible to
have the semantics be:


If a generator is resumed with ``StopIteration``, the exception
is raised at the resumption point (and stored for later use).
When the generator exits normally (i.e. ``return`` or falls off
the end) it re-raises the stored exception (if any) or raises a
new ``StopIteration`` exception.

I don't like the idea of storing exceptions. Let's just say that we don't care whether it re-raises the very same StopIteration exception that was passed in or a different one -- it's all moot anyway because the StopIteration instance is thrown away by the caller of next().

OK - so what is the point of the sentence::

The generator should re-raise this exception; it should not yield
another value.


when discussing StopIteration?

Tim Delaney
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to