该内容已被发布者删除 该内容被自由微信恢复
文章于 2017年4月2日 被检测为删除。
查看原文
被用户删除
其他

Python 3.5发布:新增模块,性能优化,对开发者更友好

2015-09-21 Python开发者

(点击上方公号,可快速关注)


出处:极客头条

网址:http://geek.csdn.net/news/detail/39578


Python 3.5.0在9月13号正式发布,与3.4相比,有哪些让人期待的新特性呢?


  • ,优化Python对zip压缩包的支持。从2.6版本开始,Python支持将文件或zip形式的压缩包作为脚本执行,对于有必要作为一个文件发布又复杂到要分模块管理的应用来说,这个功能很实用。但是这个功能却鲜有人知,原因之一是当时,只在What’s New中提到,没有写到文档中;原因之二是Windows没有为这种形式的文件(.zip)提供相应地Python扩展名(类似.py)。所以这一次的版本中重新发布了这个特性,并且,定义.pyz和.pyzw作为“Python的zip应用”和“Windows下Python Zip应用”的扩展名,并提供了一个简单的管理工具。


  • ,解包操作更加方便。*作为可迭代的解包操作符,**作为字典的解包操作符。list,tuple等数据结构通过解包操作会得到分散的对象,例如,*range(4), 4结果得到(0, 1, 2, 3, 4)。


  • ,%操作符支持对字节和字节数组的格式化。


  • ,新增矩阵乘法运算符’@’。 a @ b表示矩阵a乘矩阵b,也支持a @= b。


  • ,新增os.scandir(),能够快速遍历目录。


  • ,提供系统调用中断时自动重试的支持。


  • ,StopIteration异常改在生成器内部处理。现在如果生成器raise一个StopIteration,将会替换为RuntimeError。因为这个特性不能向前兼容,所以最初是以__future__的形式发布的。


  • ,新增typing模块,类型注释的新标准。支持通过def greeting(name: str) -> str:这种形式声明函数,来注释输入和输出地数据类型。


  • ,新增math.isclose(),来判断近似相等


  • ,优化Windows平台对virtualenv的支持。在Windows中Python如果安装了virtualenv或者多版本共存的话,需要配置解释器的路径来指定一个解释器执行,但是并不会区分虚拟环境还是系统环境,如果使用pip等命令行,影响的还是系统环境。本PEP使系统能感受到“虚拟环境的存在”,也就说如果没有特别指定解释器,Windows中运行Python命令的时候会影响活跃的virtualenv,如果没有,再调用默认的Python


  • ,不再使用.pyo文件名。扩展.pyc,如果添加优化参数,字节码文件同目录下生成.pyc将会使优化后的版本,文件中会保存优化级别。


  • ,优化内置模块和扩展模块的加载。


  • ,支持async/await语法的异步协同。优化了Python的异步,添加了 、、和等。



其他CPython的优化


  • 当LC_TYPE locale是POSIX locale(C locale)时, 和 用surrogateescape错误处理器,不再使用strict错误处理器。


标准库重要优化



  • 用重写,速度提高4-100倍。

  • 模块支持

  • 新增os.scandir()函数。

  • 用重写,性能大大提升。

  • 新函数subprocess.run()使。

  • 模块优化,性能更高,对开发者更加友好。


安全优化


  • 标准库禁用SSLv3.

  • HTTP cookie,解析更加严格,以阻止潜在的注入攻击。


Windows优化


  • ,替换MSI.

  • Windows构建以及扩展模块现在使用Microsoft Visual C++ 14.0。


反馈


  • redsymbol说,Python3变得越来越好了,他使用3比2多三年,并深深地爱上了Python3.有时候不得不用2.7,就会感觉从第五代工具回到了二代。 对此有人反驳说,是“从二代回到五代”吧,Python3没有参数列表自解(parameter tuple unpacking by itself),用起来感觉非常不友好。orf对此回应:我用了7年多Python都不知道这玩意是什么,也没在代码中见过,移除难用的feature是一大进步,如果你接受不了的话,我很抱歉。Py3 is awesome.(中有一大堆关于这个feature的讨论)


  • “你们搞的这个typing模块啊,excited!”ricw提到,这个模块解决了Python最大的软肋,以后Python会变得越来越专业化。


  • ceronman说这是他最喜欢的3.X版本,Typing注释模块,async/await,解包广泛应用,这些功能都很赞,遗憾是没有赶上这个版本,期待3.6(又是长长的对这一feature的讨论).


  • 如果所有的东西都兼容Py3,这个世界就完美了 :)。



Python开发者

微信号:PythonCoder

可能是东半球最好的 Python 微信号

--------------------------------------

投稿网址:top.jobbole.com

商务合作QQ:2302462408

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存