Python 3.5发布:新增模块,性能优化,对开发者更友好
(点击上方公号,可快速关注)
出处:极客头条
网址: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