BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Python 3.5正式发布,支持async/await异步编程

| 作者 臧秀涛 关注 4 他的粉丝 发布于 2015年9月14日. 估计阅读时间: 2 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

2015年9月13日,Python 3.5正式发布。该版本引入了很多新特性,比如支持async/await异步编程,改进了对Python Zip应用的支持,引入了一个加载扩展模块的改进机制等。

语法方面的变化主要有三点:

  • PEP 492:支持async/await语法的协程

PEP 492极大改进了Python中对异步编程的支持,增加了awaitable对象(可以是协程或者带有__await__() 方法的对象)、协程函数异步迭代异步上下文管理器等内容。

协程函数用新的async def语法声明:

>>>async def coro(): 

   ... return 'spam'
  • PEP 465:新的矩阵相乘运算符:a @ b
  • PEP 448:解包操作泛化(Unpacking Generalizations)

CPython实现的改进:

  • 不再使用.pyo文件,而是引入了一种更灵活的替代机制,.pyc文件可以表示优化和未优化的字节码。优化级别信息可以包含在.pyc文件的名字中,具体可参见PEP 488
  • 重新设计了内置和扩展模块的加载机制,具体可参见PEP 489

标准库也有重要改进:

安全方面的改进:

  • 标准库中默认关闭了SSLv3,不过仍然支持手动开启。
  • HTTP cookie解析更为严格,以防止可能出现的注入攻击。

更多新特性,可以参考相关文档

另外,在10月15~17日的QCon上海2015上,国内著名的Python专家赖勇浩将分享《探索Python 3.5中async/await特性的实现》。async/await特性使得Python具备语法级别的协程支持,也让它有了更容易理解和交流的异步编程模型。那么,这个特性在虚拟机里是如何实现的呢?是否用了什么很特别的机制?跟之前的yield/yield from有何异同?敬请期待。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT