甚至具体的对象名称、内置方法都可以如数家珍,这显然是极好的,但我们其实都忽略了一个问题,就是具体应用场景,三者的使用目的是一样的,换句话说,使用结果是一样的,都可以提高程序运行的效率,但到底那种场景用那种方式更好一点?
asyncio.run为你执行上面提到的这些操作,但尽管有这些帮助,在构建最初几个重要的asyncio应用程序的过程中,仍将尝试在关闭期间清除错误消息,就像这样:“Task was destroyed but it is pending!”。
下面是一个简单的示例,使用协程来异步下载多个网页:上面的代码使用了 asyncio 和 aiohttp 库,其中 asyncio 是 Python 自带的异步框架,aiohttp 是一个异步的 HTTP 请求库。
Python3.4 时有了 yield from, 并试验性引入的异步 I/O 框架 asyncio。ES6 引入 Promise/a+, 生成器 Generators, 新关键词 yield 使生成器函数暂停。