Python 3.6.0 正式版发布附新特性说明

2020-06-19 00:00:00 专区 订阅 变量 添加 顺序

计划在上周发布的Python3.6.0推迟到昨日发布,你可以点击这里下载新版的Python3.6.0,那么此次的新版本带来了哪些新的特性呢?下面我们去看一下Python的官方文档。

What’s New In Python 3.6

此篇文章详细揭示了Python3.6中的新特性,Python3.6于2016.12.23正式发布,你可以点击这里查看整个的变化日志。

总结:此次发布的亮点

新的语法特性

  • PEP 498, 格式化字符串变量.
  • PEP 515, 数字变量使用下划线.
  • PEP 526, 给变量添加注释的语法.
  • PEP 525, 异步生成器.
  • PEP 530: 异步推导.

新的库模板

  • secrets: PEP 506 – Adding A Secrets Module To The Standard Library.

CPython的一些改进

  • 重新实现了字典dict,使其更加紧凑,像是PyPy中的实现。此次重新实现的dict比Python3.5中的字典内存使用减少了20%-25%
  • 定制类的创建使用 new protocol 进行了简化
  • 类中各个属性定义的顺序现在是被保存的 now preserved.
  • 双星号变量**kwargs中的元素的顺序是你传入函数中的元素的顺序
  • 添加了DTrace和SystemTap探测支持。
  • 新的PYTHONMALLOC环境变量现在可用于调试解释器内存分配和访问错误。

标准库的重大改进

  • asyncio模板添加了很多新的功能、重要的可用性、性能改进以及大量的bug,从Python3.6开始 asyncio模板不再是临时的并且API变得更加稳定
  • 一个新的文件系统路径协议file system path protocol已经产生来支持 path-like objects,标准库中所有的文件路径操作已经被更新到使用新的协议
  • datetime模板现在已经支持 Local Time Disambiguation
  • typing模板进行了很多的改进
  • tracemalloc模板进行了大幅度的改进,现在用来为ResourceWarning提供更好的输出、以及为内存分配错误提供更好的诊断。

安全性的提高

  • 添加了新的模板secrets以简化使用于管理密码,比如账号认证,令牌等的密码的随机数的生成
  • 在Linux OS中,os.urandom()现在阻塞,直到系统urandom熵池被初始化以增加安全
  • hashlib和ssl 模板现在已经支持OpenSSL 1.1.0.
  • ssl 模板中的默认设置和功能现在已经被改进了
  • 模板现在新增了对BLAKE2, SHA-3 and SHAKE的哈希算法以及scrypt()密钥导出函数的支持


下面详细解释新特性的一些用法(官网实例)


PEP 498, 格式化字符串变量.

PEP 515, 数字变量使用下划线.

PEP 526, 给变量添加注释的语法

PEP 525, 异步生成器.

PEP 530: 异步推导.


PEP 487 – 类创建的更简单的定义


PEP 519 – 添加一个文件系统路径协议


PEP 495 – Local Time Disambiguation


每一个新特性的详细解释说明将会在我的公众号中发布,欢迎关注“路人甲TM”。

相关文章