[Python-Dev] Tricky way of of creating a generator via a comprehension expression
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