Python 3.6 发布已经有段时间了,不少新特性应该被很多开发者用在了日常的开发中,这篇文章主要介绍下自己在开发中常用到的几个。
增加数字可读性
在定义数字的时候,有一个语法特性可以让数字可读性增强,即你在数字之间可以按照自己的喜好添加一个下滑线,就像这样
在这里还是要推荐下我自己建的Python开发学习群:628979297,群里都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2018最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴
这样书写方式与之前的并无区别
语义其实是一样的,也就是定义了一个值为 100000 的变量。
当然,对于十六进制与二进制也是支持的
这个小修改也恰好体现了 Python 之禅的 Readability counts (可读性很重要)这一点吧。
详情请看 PEP 515 。
新的格式化字符串的方法
Python 3.6 中添加了另一种格式化字符串的方法,这个方法允许你在字符串中直接嵌入表达式。下面有两个例子,可以看看感受一下
另外,和之前的 str.format() 格式化字符串的方法类似,也可以用特定的格式说明符说明格式化的方式。比如我们想用十六进制的形式格式化一个十进制的数,可以这样
相比于之前的 '...' % (val1[, val2, ...]) 以及 str.format() ,这种方式不管是书写上还是可读性上,感觉都方便了不少,所以如果你在 Python 3.6 中做开发的话,我十分推荐这种方式。
详情请看 PEP 498 。
变量的类型注解
从 Python 3.5 开始,你可以给函数添加类型注解
在 Python 3.6 中,你也可以给独立的变量作类型注解,就像给函数中形式参数作注解差不多
需要注意的是,Python 的类型注解并不会在运行中执行相应的检查
也就是说,如果你定义了一个整形的变量,而你却赋值给它一个字符串,Python 并不会报错,对于函数的参数以及返回值的注解也是这样的。个人觉得这更像是编程时的一个辅助措施。
如果你打算严格执行注解的要求,你可以使用 python/mypy 工具进行检查。(使用方法请看 https://github.com/python/mypy )
详情请看 PEP 526 。
其它值得注意的变化
新增加的模块中有一个叫做 secrets ,可以较为方便的提供密码学安全的随机串,我之前的一篇文章《玩转 Python 中的随机数》的后面部分对这个模块进行了一些简单的说明,有兴趣的朋友可以去看一下。
Python 3.6 中不仅仅是新特性的添加,也有性能的提升,比如字典类型相比之前更快,并且节省了 20% 到 25% 的空间。
当然,这个版本带来的变化肯定不止上面这么一些,我例举出来的都是一些常用的点。如果想看全面的说明,可以去官网( https://docs.python.org/3.6/whatsnew/3.6.html )看看。
上面的 PEP 515 、PEP 498 、PEP 526 的具体信息都可以在上面的地址中看到。