Learn Python's AsyncIO in 15 minutes
Вставка
- Опубліковано 22 сер 2024
- In this tutorial we will be looking at asyncio, which is a package from the standard Python library which allows us to do asyncronous programming. It's very easy to learn, but can be a bit tricky to master. Any way, we will be covering how to use it in less than 15 minutes!
▶ Become job-ready with Python:
www.indently.io
▶ Follow me on Instagram:
/ indentlyreels
Documentation:
docs.python.or...
Simple but most essential and elegant explanations for the asyncio. Huge thanks!
1:44 I think the point of 'await' is to let python do a context switch. Normal function call to sleep will also transfer control to the next line after the sleep is done, await doesn't affect that
11:10 the asyncio.sleep can be set to asyncio.sleep(0.0) and it will stil register
i know its a bit late but still might be relevant..
Thanks for the content. I think there are a few ways to do this, In the example you execute the function and then append the returned data to the list, rather than appending the function call itself to a list, Here are 2 examples:
tasks = [loop.create_task(kill_time(i)) for i in range(1, 10+1)]
await asyncio.wait(tasks)
for task in tasks:
print(task.result())
or
list_of = []
for i in range(1, 10+1):
task = asyncio.create_task(kill_time(i))
list_of.append(task)
await asyncio.gather(*list_of)
The `await asyncio.sleep(0.5)` isn't needed because "the task sometimes happends so fast that task.canceled is not going to be able to register the cancel in enough time"! But it's needed because `task.cancel()` doesn't actually start the cancelation but merely schedule it for cancellation. The task will be cancelled when control returns to the event loop, which happens when an await expression is encountered.
doesnt await defeat the asynchronous behavior and make it blocking? 🤒
i think the explanation is wrong. Await starts a async coroutine, nothing to do with waiting afaik.
If I understand correctly, if you await, the execution will continue in another coroutine, which could be the one you just created, or another
Thanks o this video I've decided to rewrite my synchronous data grabber (web scrapping and directly via API) based on requests to asyncio and aiohttp. Speedup was about ~2x :)
Very clear 👌
This is arguably the best asyncio-await explanation on youtube!. thanks for keeping it simple to understand!
thanks really understood the concept.
I think this video is great. Very clear.
Great video, thanks!
👏Clear and concise
Very clear, thank you very much !
This was very helpful. Thank you.
Thanks for this exposition 👍
Thanks for a simple explanation!
For a noob like me this was awesome! Thank you
Awesome vid; glad I stumbled upon this! Much cleaner than threading/mp libraries, so I want to learn this one! Why does main have to be async def main and not just def main? Also, does that mean that any functions I use in the async module must have with the async keyword in the definition?
Thanks for the explanation
Can I use this to constantly check if a program is running, then make an if statement saying if the program is not running open a file and if it’s already running print the name of the current file it’s running? I’m trying to make this but with a start and stop button…
Your voice & accent sounds a lot like Naval Ravikant
😃
great tutorial!
are u using python 3.10?? bcs some function has depreced
6:57 No.
Use list_of_tasks = [kill_time(i) for i in range(1000)]
Why do you need list comprehension versus what he had?
@7:15 isnt the function kill_time() already called before you do await.gather()
coroutines (any function with `yield` or `await` inside) should be `extracted` from a function first by a call syntax. But this call is not a call, it just returns a `coroutine` object.
very nice
Nice explanation, very helpfull for me. A huge thanks !!
11:15 I am strongly against waiting like that. I would loop or create something awaitable instead, but I want to learn it, and you giving me an anti-pattern like that makes me question the usefulness of the rest :/
You can be strongly against whatever you want. The sleep can also be set to 0 if you want, but you need to provide your script some context to be able to perform a switch or it never will.
Can you please provide source code for these videos
I don’t have source code for these videos
@@Indently you delete all the example files after writing ?
@@__lasevix_ Yeah, I don't share source code in general for non-project videos
Just follow along in practice. Not everything has to be a handout.
fuoco frigiteli y adizo
Not super useful 😢
Thank you for the useful comment 😉