[Python-Dev] Tricky way of of creating a generator via a comprehension expression (original) (raw)

Greg Ewing greg.ewing at canterbury.ac.nz
Thu Nov 23 03:15:59 EST 2017


Ivan Levkivskyi wrote:

On 23 November 2017 at 05:44, Greg Ewing <greg.ewing at canterbury.ac.nz_ _<mailto:greg.ewing at canterbury.ac.nz>> wrote:

def g(): return ((yield i) for i in range(10))

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)

But then you get a non-lazy iterable, which defeats the purpose of using a generator expression -- you might as well have used a comprehension to begin with.

-- Greg



More information about the Python-Dev mailing list