Python Glossary English

Python 3.7+Асинхронное программированиефункция

asyncio.run()

event loop

Запускает корутину верхнего уровня в новом event loop. Главная точка входа для async-программ (Python 3.7+).

Синтаксис

asyncio.run(coro)

Вызвать его изнутри уже работающего цикла нельзя: в Jupyter или внутри другой корутины получите RuntimeError про asyncio.run() cannot be called from a running event loop. Каждый вызов создаёт новый loop и в конце закрывает его, отменяя недоделанные задачи, поэтому привязанные к циклу объекты (Queue, Lock, открытые соединения) нельзя переиспользовать между двумя вызовами. Практическое правило: ровно один вызов на всю программу, в самой верхней точке.

Примеры

import asyncio
async def main():
    return 42
result = asyncio.run(main())
result # → 42
import asyncio
async def hello():
    print('start')
    await asyncio.sleep(0)
    print('end')
asyncio.run(hello())  # → start / end

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности