asyncio文档提供了两个如何每隔两秒钟打印“Hello World”的示例: https://docs.python.org/3/library/asyncio-eventloop.html#asyncio-hello-world-callbackhttps://docs.python.org/3/library/asyncio-task.html#asyncio-hello-world-coroutine
我可以从解释器中运行它们,但如果这样做,我将无法访问解释器。异步事件循环是否可以在后台运行,以便我可以在解释器中继续键入命令?
对于Python3.8,您可以使用新的AsyncioREPL。
编辑:
如果使用Python3.8或更高版本,则应使用
asyncio
repl,如zeronone's answer中所述。如果使用3.7或更低版本,则可以使用此答案。可以在后台线程中运行事件循环:
注意,必须在
loop
上调用asyncio.set_event_loop
,否则将得到一个错误,说明当前线程没有事件循环。如果要与主线程中的事件循环交互,则需要坚持使用^{} 调用。
虽然这是在解释器中进行实验的一种好方法,但在实际程序中,您可能希望代码在事件循环中运行,而不是引入线程。
相关问题 更多 >
编程相关推荐