[Python-Dev] Tricky way of of creating a generator via a comprehension expression (original) (raw)
Ivan Levkivskyi levkivskyi at gmail.com
Thu Nov 23 02:38:07 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 ]
On 23 November 2017 at 05:44, Greg Ewing <greg.ewing at 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20171123/4d18408b/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 ]