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