如何替换已关闭的事件循环?

9

我主要在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() 仍将返回该已关闭的循环。
如果我无意中关闭了事件循环,该怎么办?我宁愿不重启解释器。
1个回答

14

我需要设置它吗,还是可以直接使用它?我想有一些神奇的东西让我想要设置它。 - leewz
1
@leewangzhong 一旦你设置好了,下一次调用 asyncio.get_event_loop() 将会返回新的循环,你的代码将能够正常工作而不需要退出解释器。 - Joachim Isaksson
1
我找到了我想问的问题的答案:各种asyncio函数(如ensure_future)都带有可选的loop参数,如果没有提供,它将使用get_event_loop()中的循环。 - leewz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接