Как не использовать asyncio.get_event_loop()

Чтобы запустить асинхронную функцию в скрипте надо использовать:

import asyncio

async def func():
    #do something

loop = asyncio.get_event_loop()
loop.run_untill_complete(func())

Есть ли способ не вызывать такую большую конструкцию? Вызывать метод просто:

import asyncio

async def func():
    #do something

await func()

Ответы (1 шт):

Автор решения: re1von

Предпочтительный способ - asyncio.run(func()), или же посреди логики кода (когда цикл событий уже создан и запущен) - asyncio.create_task(func()).
Также вы можете заменить

loop = asyncio.get_event_loop()
loop.run_untill_complete(func())

на asyncio.new_event_loop().run_untill_complete(func()).

→ Ссылка