您现在所在的位置:首页 >关于奇酷 > 媒体报道 > Python 3.10 正式发布!全新六大特点解析!

Python 3.10 正式发布!全新六大特点解析!

来源:奇酷教育 发表于:

Python 3 10 正式发布!全新六大特点解析!

  2021年10月4日 Python 终于正式发布了 3.10 版本。
 
  全新六大特点
 
  match和case 语法
 
  更严谨的 zip
 
  新的类型标注特性
 
  重要的弃用、移除或限制,如PEP 632,弃用 distutils 模块
 
  新的特性:带圆括号的上下文管理器
 
  更友好的报错提示
 
  01
 
  全新六大特点
 
  1 match和case 语法
 
  Python 3.10 这个版本,最受关注的应该就是 结构模式匹配 —— match-case。

 
  下边是最简单的一个 match-case 的例子,看起来是不是非常的直观简洁?
 
  def http_error(status):
 
      match status:
 
          case 400:
 
              print("Bad request")
 
          case 404:
 
              print("Not found")
 
          case 418:
 
              print("I m a teapot")
 
          case _:
 
              print("Something s wrong with the internet")
 
              return "Something's wrong with the Internet"
 
  你看,与C++的switch和case用法是完全一样的!
 
  2 更严谨的 zip
 
  zip打包多个可迭代对象,配合for后接下来的操作以元组为基本单位,但是有一个有些致命的隐含问题,如下两个列表a,b 长度不一致,zip后丢失了a的元素 3:
 
  In [43]: a=[1,2,3]                                                              
 
  In [44]: b=['a','b']                                                            
 
  In [45]: for i in zip(a,b): 
 
      ...:     print(i) 
 
      ...:                                                                        
 
  (1, 'a')
 
  (2, 'b')
 
  为了解决这个问题,zip添加了一个布尔类型的参数 strict,这个变化也就是:
 
  3.10以前zip的原型:
 
  zip(*iterables)
 
  3.10以后增加一个布尔类型参数strict,默认为False
 
  zip(*iterables, strict=False)
 
  只有当其为True时,打包的可迭代对象长度不一致时会抛异常;当为False时,与之前版本的zip完全相同,因此zip是完全向后兼容的。
 
  3 带括号的上下文管理器
 
  with可以加括号了,例如

 
  4 更友好的报错提示
 
  当你的括号、引号未闭合时,python会抛出更加清晰明了的错误

 
  (本文参考自 Python官方文档 : Python Release Python 3.10.0 | Python.org)