[Python-ideas] Generators are iterators
Guido van Rossum
guido at python.org
Wed Dec 10 21:46:11 CET 2014
More information about the Python-ideas mailing list
Wed Dec 10 21:46:11 CET 2014
- Previous message: [Python-ideas] Generators are iterators
- Next message: [Python-ideas] Generators are iterators
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I have replaced the confusing paragraph with this: """ The proposal does not change the relationship between generators and iterators: a generator object is still an iterator, and not all iterators are generators. Generators have additional methods that iterators don't have, like ``send`` and ``throw``. All this is unchanged. Nothing changes for generator users -- only authors of generator functions may have to learn something new. """ Let us know if there is still confusion about what the PEP means. --Guido On Wed, Dec 10, 2014 at 10:13 AM, Guido van Rossum <guido at python.org> wrote: > Everyone (including Chris), hold your horses. I will come up with better > words for the PEP. I apologize for the confusion. > > On Wed, Dec 10, 2014 at 9:37 AM, Nathaniel Smith <njs at pobox.com> wrote: > >> On 10 Dec 2014 16:38, "Chris Angelico" <rosuav at gmail.com> wrote: >> > >> > Would it be better to clarify that as "generator functions"? Maybe >> > something like this: >> > >> > """ >> > Under this proposal, generator functions and iterators would be >> > distinct, but related, concepts. Like the mixing of text and bytes in >> > Python 2, the mixing of generators and iterators has resulted in >> > certain perceived conveniences, but proper separation will make bugs >> > more visible. The distinction is simple: A generator function returns >> > a generator object. The latter is an iterator, having proper __iter__ >> > and __next__ methods, while the former has neither and does not follow >> > iterator protocol. >> > """ >> >> I find this more confusing than the original, actually, because now it >> sounds like you're saying that the distinction between a generator function >> and a generator instance is something new that this PEP is adding, in order >> to fix all the problems that are being caused by people writing 'for x in >> genfunc: ...'. Which doesn't make much sense. Like Nick said, it seems to >> me that the key distinction to emphasize is the distinction between >> generator function bodies and __next__ method bodies. >> >> -n >> >> _______________________________________________ >> 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) > -- --Guido van Rossum (python.org/~guido) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-ideas/attachments/20141210/a317a1a3/attachment.html>
- Previous message: [Python-ideas] Generators are iterators
- Next message: [Python-ideas] Generators are iterators
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list