[Python-ideas] PEP 479: Change StopIteration handling inside generators
Chris Barker
chris.barker at noaa.gov
Fri Nov 21 18:51:41 CET 2014
On Fri, Nov 21, 2014 at 9:18 AM, Andrew Barnert <
abarnert at yahoo.com.dmarc.invalid> wrote:
> Generators are a subtype of iterators. They support the iterator protocol
> completely, and in the same way as any other iterator. They also support
> extensions to that protocol--e.g., send(). But they also have a
> relationship to a generator function or generator expression,
>
interesting -- I've always called those "generator comprehensions" -- but
anyway, -- do they have a special relationship?
I can put any iterable in a generator expression:
gen_exp = (i for i in [3,4,5,6])
the result is a generator:
In [5]: type(gen_exp)
Out[5]: generator
so I guess you could call that a "special relationship" -- but it looks to
me kind of like an alternate constructor.
But in any case, you can use a generator created by a generator expression
or a generator function the same way you can use a iterable or an iterator
class.
Then again, the word "generator" itself leads to confusion when speaking
> loosely. Maybe it would be clearer if "generator" had no meaning; generator
> functions return generator iterators.
not sure how that would help -- a generator is a type, and it is created by
either calling a generator function or a generator expression.
if there is confusion, it's when folks call a generator function a
"generator"
Anyway, I just went back and read the PEP, and I'm still confused -- would
the PEP make generators behave more like iterator classes, or less like
them?
-CHB
--
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/20141121/fe4fa18d/attachment-0001.html>
More information about the Python-ideas
mailing list