Asyncio -- delayed calculation

Christian Gollwitzer auriocus at gmx.de
Thu Dec 1 02:53:33 EST 2016


Am 30.11.16 um 22:07 schrieb Gregory Ewing:
> Chris Angelico wrote:
>
>> That's because you're not actually running anything concurrently.
>
> Yes, I know what happens and why. My point is that for
> someone who *doesn't* know, simplistic attempts to
> explain what "await" means can be very misleading.
>
> There doesn't seem to be any accurate way of summarising
> it in a few words. The best we can do seems to be to
> just say "it's a magic word that you have to put in
> front of any call to a function that you defined as
> async".

well that works - but I think it it is possible to explain it, without 
actually understanding what it does behind the scences:

x = foo()
# schedule foo for execution, i.e. put it on a TODO list

await x
# run the TODO list until foo has finished

IMHO coroutines are a simple concept in itself, just that stackful 
programming (call/return) has tainted our minds so much that we have 
trouble figuring out a "function call" which does not "return" in the 
usual sense. The implementation is even more convoluted with the futures 
and promises and whatnot. For simply using that stuff it is not 
important to know how it works.


	Christian


More information about the Python-list mailing list