Pythonannotate提升Python代码可读性与可维护性的工具 python可读性差_Python

Python 3.6 发布已经有段时间了,不少新特性应该被很多开发者用在了日常的开发中,这篇文章主要介绍下自己在开发中常用到的几个。

增加数字可读性

在定义数字的时候,有一个语法特性可以让数字可读性增强,即你在数字之间可以按照自己的喜好添加一个下滑线,就像这样

Pythonannotate提升Python代码可读性与可维护性的工具 python可读性差_Python_02

这样书写方式与之前的并无区别

Pythonannotate提升Python代码可读性与可维护性的工具 python可读性差_格式化字符串_03

语义其实是一样的,也就是定义了一个值为 100000 的变量。

当然,对于十六进制与二进制也是支持的

Pythonannotate提升Python代码可读性与可维护性的工具 python可读性差_Python_04

这个小修改也恰好体现了 Python 之禅的 Readability counts (可读性很重要)这一点吧。

详情请看 PEP 515 。

新的格式化字符串的方法

Python 3.6 中添加了另一种格式化字符串的方法,这个方法允许你在字符串中直接嵌入表达式。下面有两个例子,可以看看感受一下

Pythonannotate提升Python代码可读性与可维护性的工具 python可读性差_python3.6和3.5区别_05

Pythonannotate提升Python代码可读性与可维护性的工具 python可读性差_python3.6和3.5区别_06

另外,和之前的 str.format() 格式化字符串的方法类似,也可以用特定的格式说明符说明格式化的方式。比如我们想用十六进制的形式格式化一个十进制的数,可以这样

Pythonannotate提升Python代码可读性与可维护性的工具 python可读性差_python3.6和3.5区别_07

相比于之前的 '...' % (val1[, val2, ...]) 以及 str.format() ,这种方式不管是书写上还是可读性上,感觉都方便了不少,所以如果你在 Python 3.6 中做开发的话,我十分推荐这种方式。

详情请看 PEP 498 。

变量的类型注解

从 Python 3.5 开始,你可以给函数添加类型注解

Pythonannotate提升Python代码可读性与可维护性的工具 python可读性差_格式化字符串_08

在 Python 3.6 中,你也可以给独立的变量作类型注解,就像给函数中形式参数作注解差不多

Pythonannotate提升Python代码可读性与可维护性的工具 python可读性差_Python_09

需要注意的是,Python 的类型注解并不会在运行中执行相应的检查

Pythonannotate提升Python代码可读性与可维护性的工具 python可读性差_python_10

也就是说,如果你定义了一个整形的变量,而你却赋值给它一个字符串,Python 并不会报错,对于函数的参数以及返回值的注解也是这样的。个人觉得这更像是编程时的一个辅助措施。

如果你打算严格执行注解的要求,你可以使用 python/mypy 工具进行检查。(使用方法请看 https://github.com/python/mypy )

详情请看 PEP 526 。

其它值得注意的变化

新增加的模块中有一个叫做 secrets ,可以较为方便的提供密码学安全的随机串,我之前的一篇文章《玩转 Python 中的随机数》的后面部分对这个模块进行了一些简单的说明,有兴趣的朋友可以去看一下。

Python 3.6 中不仅仅是新特性的添加,也有性能的提升,比如字典类型相比之前更快,并且节省了 20% 到 25% 的空间。

Pythonannotate提升Python代码可读性与可维护性的工具 python可读性差_python3.6和3.5区别_11

当然,这个版本带来的变化肯定不止上面这么一些,我例举出来的都是一些常用的点。如果想看全面的说明,可以去官网( https://docs.python.org/3.6/whatsnew/3.6.html )看看。

上面的 PEP 515 、PEP 498 、PEP 526 的具体信息都可以在上面的地址中看到。

Pythonannotate提升Python代码可读性与可维护性的工具 python可读性差_python_12