[Python-Dev] PEP 479: Change StopIteration handling inside generators (original) (raw)

Guido van Rossum guido at python.org
Tue Nov 25 19:26:24 CET 2014


On Tue, Nov 25, 2014 at 10:12 AM, Isaac Schwabacher <ischwabacher at wisc.edu> wrote:

On 11/25/14, Guido van Rossum wrote: > On Tue, Nov 25, 2014 at 9:49 AM, Chris Angelico <ischwabacher at wisc.edu <_ _rosuav at gmail.com')" target="1">rosuav at gmail.com> wrote: > > > On Wed, Nov 26, 2014 at 4:45 AM, Isaac Schwabacher > > <python.org/~guido(javascript:main.compose('new', 't=_ _ischwabacher at wisc.edu>> wrote: > > > Yield can also raise StopIteration, if its thrown in. The current interaction of generator.throw(StopIteration) with yield from cant be emulated under the PEPs behavior, though its not clear that thats a problem. > > > > Hrm. I have absolutely no idea when you would use that,

To close the innermost generator in a yield-from chain. No, I don't know why you'd want to do that, either.

For that purpose you should call the generator's close() method. This throws a GeneratorExit into the generator to give the generator a chance of cleanup (typically using try/finally). Various reasonable things happen if the generator misbehaves at this point -- if you want to learn what, read the code or experiment a bit on the command line (that's what I usually do).

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



More information about the Python-Dev mailing list