22 Лис 2017 22:33 "Ethan Furman"
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. Then you didn't read my example carefully, since the whole point is that the list constructor there returns a list.