[Python-Dev] Tricky way of of creating a generator via a comprehension expression

Sven R. Kunze srkunze at mail.de
Wed Nov 22 15:48:09 EST 2017


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 so `g` gets assigned a list, and the
>     `yield` 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>


More information about the Python-Dev mailing list