我主要在IPython的交互式shell中工作。有时,我会从互联网上复制粘贴代码来测试并与实例一起使用。
如果我从这篇教程中复制以下代码:
import asyncio
async def speak_async():
print('OMG asynchronicity!')
loop = asyncio.get_event_loop()
loop.run_until_complete(speak_async())
loop.close()
我将关闭循环。 文档 表示,不要在事件循环关闭后使用任何方法。而且
async.get_event_loop()
仍将返回该已关闭的循环。如果我无意中关闭了事件循环,该怎么办?我宁愿不重启解释器。
asyncio.get_event_loop()
将会返回新的循环,你的代码将能够正常工作而不需要退出解释器。 - Joachim Isakssonensure_future
)都带有可选的loop
参数,如果没有提供,它将使用get_event_loop()
中的循环。 - leewz