2015年9月13日,Python 3.5正式 发布 。该版本引入了很多新特性,比如支持async/await异步编程,改进了对Python Zip应用的支持,引入了一个加载扩展模块的改进机制等。
语法方面的变化主要有三点:
PEP 492极大改进了Python中对异步编程的支持,增加了 awaitable对象 (可以是协程或者带有 __await__() 方法的对象)、 协程函数 、 异步迭代 和 异步上下文管理器 等内容。
协程函数用新的async def语法声明:
>>>async def coro(): ... return 'spam'
CPython实现的改进:
标准库也有重要改进:
安全方面的改进:
更多新特性,可以参考相关 文档 。
另外,在10月15~17日的 QCon上海2015 上,国内著名的Python专家 赖勇浩 将分享《探索Python 3.5中async/await特性的实现》。 async/await特性 使得Python具备语法级别的协程支持,也让它有了更容易理解和交流的异步编程模型。那么,这个特性在虚拟机里是如何实现的呢?是否用了什么很特别的机制?跟之前的yield/yield from有何异同?敬请期待。