[Python-ideas] PEP 479: Change StopIteration handling inside generators
Chris Barker
chris.barker at noaa.gov
Mon Nov 24 17:38:49 CET 2014
On Fri, Nov 21, 2014 at 4:56 PM, Alexander Heger <python at 2sn.net> wrote:
> Maybe a way to obtain equivalency to the generator functions in this
> case is to "break" this example for the iterator object as well, in
> that StopIteration has to be raised in the frame of the generator
> object; if it raised in a different context, e.g., a function called
> by __next__, that StopIteration should also be converted to a
> RuntimeError similar to what is proposed in the PEP for the generator
> functions. Maybe this is not what Chris intends to happen, but it
> would make things consistent.
>
I"mn not sure which Chris you are refering to, but for my part, yes and no:
Yes, that would keep iterator classes and generator functions consistent,
which would be a good thing.
No: I don't think we should do that -- StopIteration is part of the
iterator protocol -- generators are another way to write something that
complies with the iterator protocol -- generators should handle
StopIteration the same way that iterator classes do.
Yes, there are some cases that can be confusing and hard to debug -- but
them's the breaks.
-Chris
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker at noaa.gov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20141124/86510d0e/attachment.html>
More information about the Python-ideas
mailing list