Как использовать async/await в Python 3.5?
Не могу запустить этот простой пример кода:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time
async def foo():
await time.sleep(1)
foo()
При выполнении возникают следующие предупреждения:
RuntimeWarning: coroutine 'foo' was never awaited
Как правильно использовать асинхронные функции в Python, чтобы избежать этой ошибки?
1 ответ(ов)
Если у вас уже запущен цикл событий (с другими задачами), вы можете добавить новые задачи с помощью:
asyncio.ensure_future(foo())
В противном случае вы можете столкнуться с ошибкой:
The event loop is already running
Это происходит из-за того, что попытка запустить асинхронную функцию, когда цикл событий уже работает, вызывает конфликт. Использование asyncio.ensure_future()
позволяет безопасно добавить новую задачу в уже работающий цикл.
Фиксация количества знаков после запятой с помощью f-строк
Ошибка: "'dict' объект не имеет метода 'iteritems'"
Скачать видео с YouTube с помощью Python в определённую директорию
Доступ к атрибутам на литералах работает для всех типов, кроме `int`; почему?
Преобразование байтового массива обратно в массив numpy