[Python-Dev] Tricky way of of creating a generator via a comprehension expression (original) (raw)
Sven R. Kunze srkunze at mail.de
Wed Nov 22 15:48:09 EST 2017
- Previous message (by thread): [Python-Dev] Tricky way of of creating a generator via a comprehension expression
- Next message (by thread): [Python-Dev] Tricky way of of creating a generator via a comprehension expression
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Isn't yield like a return?
A return in a list/dict/set comprehension makes no sense to me.
So, +1 on SyntaxError from me too.
Cheers.
On 22.11.2017 21:29, David Mertz wrote:
Inasmuch as I get to opine, I'm +1 on SyntaxError. There is no behavior for that spelling that I would find intuitive or easy to explain to students. And as far as I can tell, the ONLY time anything has ever been spelled that way is in comments saying "look at this weird edge case behavior in Python."
On Nov 22, 2017 10:57 AM, "Jelle Zijlstra" <jelle.zijlstra at gmail.com_ _<mailto:jelle.zijlstra at gmail.com>> wrote:
2017-11-22 9:58 GMT-08:00 Guido van Rossum <guido at python.org_ _<mailto:guido at python.org>>: Wow, 44 messages in 4 hours. That must be some kind of record. If/when there's an action item, can someone summarize for me? The main disagreement seems to be about what this code should do: g = [(yield i) for i in range(3)] Currently, this makes
g
into a generator, not a list. Everybody seems to agree this is nonintuitive and should be changed. One proposal is to make it sog
gets assigned a list, and theyield
happens in the enclosing scope (so the enclosing function would have to be a generator). This was the way things worked in Python 2, I believe. Another proposal is to make this code a syntax error, because it's confusing either way. (For what it's worth, that would be my preference.) There is related discussion about the semantics of list comprehensions versus calling list() on a generator expression, and of async semantics, but I don't think there's any clear point of action there. -- --Guido van Rossum (python.org/~guido <http://python.org/%7Eguido>)
Python-Dev mailing list Python-Dev at python.org <mailto:Python-Dev at python.org> https://mail.python.org/mailman/listinfo/python-dev <https://mail.python.org/mailman/listinfo/python-dev> Unsubscribe: https://mail.python.org/mailman/options/python-dev/jelle.zijlstra%40gmail.com <https://mail.python.org/mailman/options/python-dev/jelle.zijlstra%40gmail.com>
Python-Dev mailing list Python-Dev at python.org <mailto:Python-Dev at python.org> https://mail.python.org/mailman/listinfo/python-dev <https://mail.python.org/mailman/listinfo/python-dev> Unsubscribe: https://mail.python.org/mailman/options/python-dev/mertz%40gnosis.cx <https://mail.python.org/mailman/options/python-dev/mertz%40gnosis.cx>
Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/srkunze%40mail.de
-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20171122/0965382d/attachment.html>
- Previous message (by thread): [Python-Dev] Tricky way of of creating a generator via a comprehension expression
- Next message (by thread): [Python-Dev] Tricky way of of creating a generator via a comprehension expression
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]