首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

哦豁,python3.7.0发布啦

其实早在去年九月份,Python就推出了3.7.0的a1版本

直到前不久(我也是今天早上翻YTB科技频道的时候才看到的),Python的3.7版本正式发布了。

Python作为一个非常有活力扩展性非常强的语言被非常广泛的应用于教育,网站运维,金融,深度学习,天文数据处理,高性能计算等领域,这些领域对于Python也提出了新的需求,而Python本身的版本迭代也考虑到了这些需求,新增了对于数据,编码和调试上面的特性。

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

新增特性

python的新增特性在官方文档里由PEP(Python Enhancement Proposal)给出。本次更新给出的新特性有以下几个:

(参考 :https://docs.python.org/3.7/whatsnew/3.7.html)

PEP-553

内置调试断点

的在需要调试的环境通常会使用pdb(Python debug)包,过程是先 import pdb 然后设置断点,现在breakpoint()作为一个内置函数,不需要import就可以直接对程序进行调试。当然,在不需要这个新特性的时候(代码已经完成调试或者是习惯旧的调试方式),可以通过设置环境变量 PYTHONBREAKPOINT=0来禁用这个新的特性

PEP-562

限制访问

我们之前在编写Python模块时,通常无法限制使用者使用内部的属性,比较典型的例子是在管理失效警告时。新的语法通过对模块添加__getattr__和__dir__,可以实现限制访问/提醒失效目的。这一特性使得新的代码的属性权限管理更加完善

PEP-564

计时器的新特性

新版本开始从内部支持nanosecond,纳秒级的计时变得很方便,针对这个特性,有6个新的函数:

clock_gettime_ns()

clock_settime_ns()

monotonic_ns()

perf_conter_ns()

process_time_ns()

time_ns()

其实就是在原来的函数后面加了个尾缀_ns,使用方式和以前的函数是完全一样的。

PEP-557

新的内置装饰器dataclass

这个特性其实是根据Python在数据科学中的应用需求新添加的,在定义类的时候如果加上@dataclass这样的装饰器,可以定义这个类为数据形式的类,可以默认定义一些类似大于小于这一些操作符,减小代码量。

PEP-538

编码问题

编码问题似乎是一个之前一直非常诟病的问题,Python_tm 似乎也是对于这个“差评”非常的关注,在新的版本里,强制使用UTF-8为所有平台的文本默认编码,这个新特性其实是小编最期待的,统一的文本编码可以使得写出来的代码跨平台性更强,更不容易出错

其他

再有就是可能针对各大论坛说Python不如c fortran快这类的评论,新版的Python自然是对于运算速度有优化,包括新的线程管理API和pyc缓存格式。

新增了日语法语韩语的文档翻译。

详细而完整的新特性描述在官网:

https://docs.python.org/3.7/whatsnew/3.7.html

【结】

其实对于新版本的期待是肯定有的,但是也有恐惧,新版本一来,之前自己写的旧版本Python下的模块在针对新版本解释器编写的程序下被调用就很容易出问题,解决的办法也是有的——重构,2333333

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180802G0BQ1500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券