Как использовать async / wait в 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 foo() 

  • Как извлечь все эмоции из текста?
  • Выпуск синтаксического анализа страницы xhtml с использованием Python
  • Значок окна установки
  • Как указать несколько типов возврата с помощью типов-подсказок
  • IOError: Недопустимый аргумент при чтении / записи большого байта
  • Установить кодировку в сценариях Python 3 CGI
  • Popen.communicate () выбрасывает UnicodeDecodeError
  • Как поместить текст в строку ввода: как запросить ввод пользователя в командной строке, предоставляя ответ «по умолчанию», который пользователь может редактировать или удалять?
  • One Solution collect form web for “Как использовать async / wait в Python 3.5?”

    Для выполнения сопрограммы требуется цикл событий . Используйте библиотеку asyncio() чтобы создать ее:

     import asyncio loop = asyncio.get_event_loop() loop.run_until_complete(foo()) loop.close() 

    Также см. Главу « Задачи» и « asyncio документации asyncio .

    Обратите внимание, однако, что time.sleep() не является ожидаемым объектом. Он возвращает None поэтому вы получаете исключение через 1 секунду:

     >>> loop.run_until_complete(foo()) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python3.5/asyncio/base_events.py", line 342, in run_until_complete return future.result() File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python3.5/asyncio/futures.py", line 274, in result raise self._exception File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python3.5/asyncio/tasks.py", line 239, in _step result = coro.send(value) File "<stdin>", line 2, in foo TypeError: object NoneType can't be used in 'await' expression 

    Вместо этого вы должны использовать asyncio.sleep() coroutine :

     async def foo(): await asyncio.sleep(1) 
    Python - лучший язык программирования в мире.