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

Ethan Furman ethan at stoneleaf.us
Wed Nov 22 16:32:38 EST 2017


On 11/22/2017 01:25 PM, Ivan Levkivskyi wrote:
> 22 Лис 2017 22:19 "Ethan Furman" пише:

>> Whether it's inside or outside a function should be irrelevant -- a comprehension / generator expression should have
>> no influence on the type of the resulting function (and at least synchronous comprehensions / generator expressions
>> should be able to live outside of a function).
>>
>>     def fun_gen():
>>           return list((yield i) for i in range(3))
>>
>>     The return says it's returning a list, so that's what it should be returning
>
> def f():
>      yield 1
>      return list()
>
> Here return also says it should return a list, so this is not an argument.

Right, the argument is that calling the `list` constructor should return a list -- not a database proxy, not a web page, 
and not a generator.

--
~Ethan~


More information about the Python-Dev mailing list