]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Updated code example for asyncio.gather (GH-20604)
authorjosephernest <nouvellecollection@gmail.com>
Fri, 14 May 2021 06:06:26 +0000 (08:06 +0200)
committerGitHub <noreply@github.com>
Fri, 14 May 2021 06:06:26 +0000 (23:06 -0700)
The previous example did not fully showcase the interest of using gather.

Here the example showcases "the result is an aggregate list of returned values".

Doc/library/asyncio-task.rst

index 3f54ecb08efc1f8059c864186c44f6cf1d7ddbf4..69e965cfc1d2d3a46ca1edb770fa608d92214be4 100644 (file)
@@ -358,32 +358,35 @@ Running Tasks Concurrently
       async def factorial(name, number):
           f = 1
           for i in range(2, number + 1):
-              print(f"Task {name}: Compute factorial({i})...")
+              print(f"Task {name}: Compute factorial({number}), currently i={i}...")
               await asyncio.sleep(1)
               f *= i
           print(f"Task {name}: factorial({number}) = {f}")
+          return f
 
       async def main():
           # Schedule three calls *concurrently*:
-          await asyncio.gather(
+          L = await asyncio.gather(
               factorial("A", 2),
               factorial("B", 3),
               factorial("C", 4),
           )
+          print(L)
 
       asyncio.run(main())
 
       # Expected output:
       #
-      #     Task A: Compute factorial(2)...
-      #     Task B: Compute factorial(2)...
-      #     Task C: Compute factorial(2)...
+      #     Task A: Compute factorial(2), currently i=2...
+      #     Task B: Compute factorial(3), currently i=2...
+      #     Task C: Compute factorial(4), currently i=2...
       #     Task A: factorial(2) = 2
-      #     Task B: Compute factorial(3)...
-      #     Task C: Compute factorial(3)...
+      #     Task B: Compute factorial(3), currently i=3...
+      #     Task C: Compute factorial(4), currently i=3...
       #     Task B: factorial(3) = 6
-      #     Task C: Compute factorial(4)...
+      #     Task C: Compute factorial(4), currently i=4...
       #     Task C: factorial(4) = 24
+      #     [2, 6, 24]
 
    .. note::
       If *return_exceptions* is False, cancelling gather() after it