Python3.10版本的新特性介绍

简介: Python近几年来越来越火了,而且版本也一直在不停的更新迭代中。Python在2021/10/04发布了3.10的正式版,虽然你可能还没有升级,不过也可以先大概了解一下在新的版本中做了哪些改动哟。

3.10正式版发布

Python近几年来越来越火了,而且版本也一直在不停的更新迭代中。Python在2021/10/04发布了3.10的正式版,虽然你可能还没有升级,不过也可以先大概了解一下在新的版本中做了哪些改动哟。

官方的升级介绍(相比3.9版本):

https://docs.python.org/3/whatsnew/3.10.html

1、错误提示变得更加友好

以前写脚本的时候,如果写了一行脚本,少写了一个括号啥的,错误提示不够直观,找错误还得找半天。

下面看下python3.9版本中的错误提示:

    a = (1,2,3


    微信图片_20220114163733.png


    同样的脚本,再看下python3.10版本下的提示:


    微信图片_20220114163736.png


    what?是的,你没有看错,python会告诉你括号没有成对出现。

    那是不是所有的错误,都能够提醒的这么智能呢?当时不是,有可能是现在新版本才刚出来,对比比较复杂的写法支持的还不够好,下面这个例子提示的就不够直观:


    微信图片_20220114163739.png


    同样是少了一个括号,看来能识别的场景有限呀,期待后面能变得更加强大。

    2、加入了match case的用法

    match ... case 语法类似于其它语言中的 switch ... case 语法,在多条件判断时比用 if ... elif 代码更简洁。

    下面看下match case的用法:

    def http_error(status):
        match status:
            case 400:
                return 'Bad Requests'
            case 404:
                return 'Not Found'
            case _:
                return 'other error'
    print(http_error(400))
    print(http_error(404))
    print(http_error(500))

    输出结果:

    Bad Requests

    Not Found

    other error

    case _  类似于其它语言中的 default ,当其他条件都不符合就执行这行。

    也可以在case语句后面使用 | 去进行连接:

      case 401 | 403 | 404: 
             return "Not allowed"


      微信图片_20220114163741.png

      在以后封装测试脚本的时候,也可以用上这个功能喔:

      def send_requests_method(method):
          match method:
              case 'GET':
                  return send_get_requests()
              case 'POST':
                  return send_post_requests()
              case 'PUT':
                  return send_put_requests()
              case _:
                  pass

      3、新的类型联合操作符

      在以前的版本中,要针对一个函数的入参做多种类型支持的话,要用到Union:

      from typing import Union
      def square(number: Union[int, float]) -> Union[int, float]:
          return number ** 2

      现在有个新的语法糖“|”,叫联合操作符,可以让代码更简洁

        def square(number: int | float) -> int | float: 
           return number ** 2

        该操作符在函数 isinstance()和 issubclass() 也可以支持

          print( isinstance(1, int | str))
          print(issubclass(int, int | str))


          4、持带括号的上下文管理器

          比如之前读取文件的操作是这样的:

          with open('file1', 'r') as f1, open('file2', 'r') as f2:   
               print(f.read())

          在3.10版本中,可以用括号将多个上下文放在一起:

          with (
              open('run.py', 'r')  as f1,
              open('run.py', 'r') as f2
          ):
              pass

          但是目前这种写法在pycharm中可以会有标红的错误提示,但不影响实际运行。



          相关文章
          |
          10天前
          |
          Ubuntu Shell Linux
          pyenv 管理多个 Python 版本(1)
          pyenv 管理多个 Python 版本(1)
          132 86
          pyenv 管理多个 Python 版本(1)
          |
          5天前
          |
          Shell Python
          使用 pyenv 来管理多个 Python 版本(2)
          使用 pyenv 来管理多个 Python 版本(2)
          98 71
          使用 pyenv 来管理多个 Python 版本(2)
          |
          2月前
          |
          PyTorch Linux 算法框架/工具
          pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
          这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
          329 1
          pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
          |
          20天前
          |
          Python
          闭包(Closure)是**Python中的一种高级特性
          闭包(Closure)是**Python中的一种高级特性
          35 8
          |
          2月前
          |
          Python Windows
          查看Python版本
          【10月更文挑战第8天】查看Python版本
          35 2
          |
          2月前
          |
          IDE 网络安全 开发工具
          IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
          本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
          448 0
          IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
          |
          2月前
          |
          机器学习/深度学习 缓存 PyTorch
          pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
          这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
          515 0
          pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
          |
          2月前
          |
          存储 大数据 数据处理
          Python 中的列表推导式与生成器:特性、用途与区别
          Python 中的列表推导式与生成器:特性、用途与区别
          30 2
          |
          3月前
          |
          开发者 Python
          Python 的主流版本:Python 3.x
          Python 的主流版本:Python 3.x
          118 2
          |
          3月前
          |
          Linux 编译器 开发工具
          快速在linux上配置python3.x的环境以及可能报错的解决方案(python其它版本可同样方式安装)
          这篇文章介绍了在Linux系统上配置Python 3.x环境的步骤,包括安装系统依赖、下载和解压Python源码、编译安装、修改环境变量,以及常见安装错误的解决方案。
          301 1