• Python3.5都发布了,你还不去试一下嘛?
  • 张琳 发表于 2016/7/6 11:36:00 | 分类标签: Python3.5 Python教程
  •  为什么,真的需要吗?对于任何一门流行编程语言的开发者来说,新版本的发布绝对是一个令人激动的时刻.


    2015年9月份Python3.5的发布带来了类似的反应.Python3.5在自身已经被使用的特性基础上,混合了其他流行语言的新特性.这些特性在不绑定新语法的情况下,能让你减少项目中的代码量和写bug的机会,并且提高程序的安全性.

    Python的统计

    许多Python专家仍然把Python2.7视为标准的稳定版本.但这并不代表之后的python版本没有在业界被大量使用.randalolson.com的各次统计信息表明,从2013至2014年,使用Python3开发者的占比从60%升至72%.你可能会认为上述两年的统计数据中,使用3.4版本的开发者当中还有81%的开发人员仍旧把2.7版本视为经常主要使用的版本.但在调查期间,有大约12%和5%的开发人员在经常使用3.4和3.2版本.这可以得出一个合乎逻辑的推论:让业界广泛使用编程语言的新版本需要时间.当开发人员对python3.5的需求增加时,3.5版本也将会得到大范围使用.

    为什么是Python3.5?

    归根到底,人们对一个语言的新版本的要求是减少bug,改善性能的同时提高标准库,语法方面的特性以及安全性.就像Python工具专家Steve Dower在视频提到的一样,Python3.5中的许多改变,是听取了Python的开发人员,或者Python的爱好者在各种Python论坛上分享出来的许多建议或想法的结果.

    下面是一些重要的更新内容:

    矩阵乘法运算符

    以前仅限于一些科学计算库,如NumPy的实现矩阵乘法功能的二元操作符“@” ,现在已经在python3.5被直接支持了.这允许矩阵部分的代码更短更简洁.使用python3.5进行有关工学或者数学方面的编程时将能从这项特性中获取大量优势.Python现在已经广泛而有效应用在上述领域的软件中,这项新特性接下来会获得很高的评价.将操作符@作为矩阵运算的标准语法,代码将变得更加易读紧凑.而即将发布的NumPy release版本中的快速矩阵乘法功能也将会促进@的使用.

    协程(异步和阻塞)

    为了推动更多易用的异步编程模型的使用,async和await语法将会对协程提供更多的支持.作为关键字,async允许函数执行起来想协程一样,同时await作为关键字将会暂停协程的执行.通过编写串行执行的代码来执行并发程序将会是主要的优势所在,这将使得新的python开发人员更容易理解协程的概念,增加了开发人员的多样性.总的来说,async/await函数意味着一个新的语法异步解决方案,而这仅仅需要你遵循Python一直以来的用法即可.

    解包

    通过函数调用在许多地方使用解包已经成为可能.早期版本有一些鸡肋的限制,不利于代码的可读性.解包操作扩大了词典和迭代器的使用.一些序列的值通过逗号的分隔就能表示对它进行解包.之前只允许在表达式的左边进行解包,而新特性将允许你在表达式的右边做同样的操作.通用型的解包可以用更少的代码得出你想要的结果.

    类型约束以及Zipapp

    Python之父Guido van Rossum非常倡导类型约束.通过类型约束去注释变量是所有开发者都在期待的特性.类型约束的目标是为了让Python更多得被编译成"脱机解析"的方式.类型注释上各种工具的添加和基本定义就是为了能够达到这个目的.同样,把规则写进注释里是没意义的,新的模块zipapp允许开发者通过API和独有的命令行工具,在可执行的python zip应用上进行操作.通过这个新模块来进行应用绑定将会变得更加容易,只要将所有的文件,包括__main__.py文件放到myapp的目录,然后运行该文件即可。

    其他特性以及改进

    1.python3.5中其他提高对代码可读性方面的改进措施,还有对bytes的bytearrys类型的数据增加了%格式化的支持.在之前的版本中,实现同样的功能会降低代码的可读性.这也就是为什么说让%格式化继续符留着是一项明智的举措.

    2.现在你可以在ArgumentParser类中对那些长选项禁用简略写法.你所需要做只需要将allow_abbrev设置为False即可

    3.处于临时状态的asyncio模块有一个显著的变化就是可以通过调用一些新的debugging API以支持SSL.新的queue函数包括Queue.task_done()和Queue.join().ensure_future(),他们已经取代了async()函数,而其他方面的变化倒不是不大.

    迁移到Python 3.5

    这里没有设定迁移到Python3.5最新版本的固定方法.同项目的代码架构和版本要求一样,应该在编写代码时就考虑这件事.举个例子,如果一个新的版本Python版本包含了新的中括号用法,同样也应该考虑在编写代码时就考虑使用这种新用法.一些工具通过定义代码的变化,修改和测试相同的功能,也能显著帮助开发者节省过渡的时间.

    总的来说,你可以访问https://docs.python.org/3.5/whatsnew/changelog.html查看Python3.5的全部变化.

  • 请您注意

    ·自觉遵守:爱国、守法、自律、真实、文明的原则

    ·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规

    ·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品

    ·承担一切因您的行为而直接或间接导致的民事或刑事法律责任

    ·您在编程中国社区新闻评论发表的作品,本网站有权在网站内保留、转载、引用或者删除

    ·参与本评论即表明您已经阅读并接受上述条款

  • 感谢本文作者
  • 作者头像
  • 昵称:张琳
  • 加入时间:2013/6/13 0:00:00
  • TA的签名
  • 这家伙很懒,虾米都没写
  • +进入TA的空间
  • 以下内容也很赞哦
分享按钮