[docs] [issue31156] Stopiteration terminates while-loop

Günter Rote report at bugs.python.org
Wed Aug 9 10:22:02 EDT 2017


Günter Rote added the comment:

Sorry, that was my misinterpretation of what happened.
I had been stumbling over an old program I had written, but
apparently it works because the while-loop is inside
a generator function, and the StopIteration is simply
passed on.

Here is a small demonstration example:
>>> def f():
...   for x in range(5):
...     yield x
... 
>>> def g():
...   h=f()
...   while True:
...      yield next(h)+100
...      yield next(h)
... 
>>> list(g())
[100, 1, 102, 3, 104]

(I am beginning to wonder whether this program will be adversely affected by PEP 479 -- Change StopIteration handling inside generators.)

----------
stage:  -> resolved
status: open -> closed
versions: +Python 3.4 -Python 3.6

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue31156>
_______________________________________


More information about the docs mailing list