On Fri, Nov 24, 2017 at 4:22 PM, Guido van Rossum <gu...@python.org> wrote:

> The more I hear about this topic, the more I think that `await`, `yield`
> and `yield from` should all be banned from occurring in all comprehensions
> and generator expressions. That's not much different from disallowing
> `return` or `break`.
>

>From the responses it seems that I tried to simplify things too far. Let's
say that `await` in comprehensions is fine, as long as that comprehension
is contained in an `async def`. While we *could* save `yield [from]` in
comprehensions, I still see it as mostly a source of confusion, and the
fact that the presence of `yield [from]` *implicitly* makes the surrounding
`def` a generator makes things worse. It just requires too many mental
contortions to figure out what it does.

I still propose to rule out all of the above from generator expressions,
because those can escape from the surrounding scope.

-- 
--Guido van Rossum (python.org/~guido)
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to