2015-09-27 6 views

Antwort

56

Lauf Koroutinen erfordert eine Ereignisschleife. Verwenden Sie die asyncio() library zu erstellen:

import asyncio 

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

Auch die Tasks and Coroutines chapter of the asyncio documentation sehen.

Beachten Sie jedoch, dass time.sleep()nicht ein erwartetes Objekt ist. Es gibt None, so dass Sie eine Ausnahme nach 1 Sekunde erhalten:

async def foo(): 
    await asyncio.sleep(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 

Sie sollten die asyncio.sleep() coroutine stattdessen verwenden