On 23 November 2017 at 05:44, Greg Ewing <greg.ew...@canterbury.ac.nz> wrote:
> Ivan Levkivskyi wrote: > >> The key idea is that neither comprehensions nor generator expressions >> should create a function scope surrounding the `expr` >> > > I don't see how you can avoid an implicit function scope in > the case of a generator expression, though. And I can't see > how to make yield in a generator expression do anything > sensible. > > Consider this: > > def g(): > return ((yield i) for i in range(10)) > > Presumably the yield should turn g into a generator, but... > then what? My brain is hurting trying to figure out what > it should do. > > I think this code should be just equivalent to this code def g(): temp = [(yield i) for i in range(10)] return (v for v in temp) Semantics of the comprehension should be clear here (just an equivalent for-loop without name leaking) -- Ivan
_______________________________________________ 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