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

Serhiy Storchaka storchaka at gmail.com
Thu Nov 23 07:54:27 EST 2017


23.11.17 14:30, Antoine Pitrou пише:

On Thu, 23 Nov 2017 14:17:32 +0200 Serhiy Storchaka <storchaka at gmail.com> wrote:

I used the "yield" statement, but I never used the "yield" expressions. And I can't found examples. Could you please present a real-world use case for the "yield" (not "yield from") expression? Of course I can. "yield" expressions are important for writing Python 2-compatible asynchronous code while avoiding callback hell: See e.g. http://www.tornadoweb.org/en/stable/gen.html or https://jdb.github.io/concurrent/smartpython.html There are tons of real-world code written using this scheme (as opposed to almost no real-world code, even Python 2-only, using "yield" in comprehensions or generation expressions).

Thank you. The tornado examples contain the following equivalence code for results = yield multi(list_of_futures):

 results = []
 for future in list_of_futures:
     results.append(yield future)

Couldn't this by written as results = [(yield future) for future in list_of_futures]?



More information about the Python-Dev mailing list