我们都知道,在python37中,我们获得了易于使用的新api asyncio.get_running_loop(),让我们在调用协程时无需显式传递eventloop。
我想知道是否可以使用任何方法在python36中获得相同的效果?
NativeSecp256k1.secKeyVerify(byteArrayOf(...))
答案 0 :(得分:2)
在Python 3.6中,您可以使用asyncio.get_event_loop()
获得同等效果。
根据documentation,它等效于调用get_event_loop_policy().get_event_loop()
,当从协程调用时,它依次返回documented返回“当前运行的事件循环”。
换句话说,当从协程调用(或从协程调用的函数)调用时,get_event_loop
和get_running_loop
之间没有区别,两者都将返回运行循环。只有在没有循环运行时,get_event_loop()
才会继续返回与当前线程关联的循环,而get_running_loop()
会引发异常。只要在循环实际运行时小心调用get_event_loop()
,它就等效于get_running_loop()
。
请注意,get_event_loop
从协程调用时返回运行循环。在那些版本之前,get_event_loop
将始终返回与当前线程关联的事件循环,该循环可能与实际运行的循环不同。这使得get_event_loop()
从根本上是不可靠的,这也是旧的异步可能将loop
参数传递到任何地方的原因。更多详细信息new to Python 3.6 and 3.5.3。