[Python-ideas] PEP 479: Change StopIteration handling inside generators

Guido van Rossum guido at python.org
Tue Nov 18 21:36:35 CET 2014


That's pretty much the reason I gave this my attention at all. :-)

On Tue, Nov 18, 2014 at 11:09 AM, Ethan Furman <ethan at stoneleaf.us> wrote:

> On 11/17/2014 08:50 PM, Guido van Rossum wrote:
> >
> > Separate from this special case, I am also worried about backward
> > compatibility, and I have yet to get a good idea for how widespread code
> is
> > that depends on StopIteration bubbling out from generators. I also don't
> > have a good idea how often this issue bites users, but I have a feeling
> it
> > does bite.
>
> One argument for making the change*:  When we're writing __next__, or
> __getattr__, etc., it is obvious that we are
> playing with internals and have to be extra careful of what other
> exceptions might be raised in that code.
> Contrariwise, the only indication of something special about a generator
> is the presence of the yield keyword -- for
> ordinary use (such as in for loops) it doesn't matter whether the called
> function returns a list, tuple, iterator,
> generator, or whatever, as long as it can be iterated over, and so when
> writing a generator, or converting an
> iterable-returning function into a generator, there's nothing obvious
> saying, "Hey!  Watch out for a StopIteration
> somewhere else in this block of code!"
>
> * I make no statement as to how strong this argument is, but there you
> have it.  :)
>
> --
> ~Ethan~
>
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>



-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20141118/0a096e47/attachment.html>


More information about the Python-ideas mailing list