Code Explanation:
1) import asyncio
Imports Python’s async I/O library.
Provides the event loop and helpers (like asyncio.run) to execute coroutines.
2) async def f():
Defines coroutine function f.
Calling f() does not run it; it returns a coroutine object that can be awaited.
inside f
return 10
When this coroutine runs (i.e., when awaited), it immediately completes and produces the value 10.
3) async def g():
Defines another coroutine function g.
inside g
x = await f()
return x + 5
f() is called to get its coroutine object.
await f() suspends g, runs f to completion on the event loop, and receives the returned value (10) which is assigned to x.
Then g returns x + 5, i.e. 10 + 5 = 15.
4) print(asyncio.run(g()))
asyncio.run(g()):
Creates a new event loop,
Schedules and runs coroutine g() until it finishes,
Returns g()’s result (here 15),
Closes the event loop.
print(...) prints that returned value.
Execution flow (step-by-step)
Program defines f and g (no code inside them runs yet).
asyncio.run(g()) starts an event loop and runs g.
Inside g, await f() runs f, which returns 10.
g computes 10 + 5 and returns 15.
asyncio.run returns 15, which gets printed.
Final output
15
Download Book - 500 Days Python Coding Challenges with Explanation
.png)

0 Comments:
Post a Comment