Passing asyncio loop by argument or using default asyncio loop
python, python-3.5, python-asyncio
Solution
A good (as in praised by Guido van Rossum) blog post discussing this is Some thoughts on asynchronous API design in a post-async/await world. With a follow up discussion from python core developers here.
TLDR;
If you're only using one event loop, it doesn't matter.
If you're managing multiple loops, and have python >= 3.6 it mostly doesn't matter: Do not use argument and use `asyncio.get_event_loop()` where needed, it will give you the correct loop.
Problem
I'm using asyncio in my application and i'm a litte bit confused about passing the event loop as argument. You've three possibilities when writing a function/method using the event loop: - Pass the asyncio event loop as argument - Don't use an argument for the event loop and use `asyncio.get_event_loop()` - Make it optional to pass the event loop as argument. If it is not passed, use `asyncio.get_event_loop()` It seems that the last case is used most of the time but even in the asyncio api the usage is inconsistent. As I don't indent to use two seperated event loops what speaks against just using `asyncio.get_event_loop()` where needed? What's the best way to go?