## Python 3.10(2021/10/04)

### 新特性

1. **结构模式匹配(Pattern Matching)**:
    - 模式匹配使得程序能够从复杂的数据类型中提取信息、根据数据结构实现分支,并基于不同的数据形式应用特定的动作
    - 引入了结构模式匹配语法,通过 `match` 和 `case` 关键字进行模式匹配。例如:
     ```python
    def match_example(value):
        match value:
            case 1 | 2 | 3: # 使用 | (“ or ”)在一个模式中组合几个字面值
                print("Value is 1")
            case str(s) if len(s) > 10:
                print(f"String is longer than 10 characters: {s}")
            case str(s):
                print(f"String is {len(s)} characters long: {s}")
            case _:
                print("Value is something else")

    # 测试 match_example 函数
    match_example(1)        # 输出: Value is 1
    match_example("hello")  # 输出: String is 5 characters long: hello
    match_example("this is a very long string")  # 输出: String is longer than 10 characters: this is a very long string
    match_example(3.14)     # 输出: Value is something else
     ```

2. **带圆括号的上下文管理器**
    - 使用外层圆括号来使多个上下文管理器可以连续多行地书写(类似import这种多行的形式)
    ```python
    with (CtxManager() as example):
        ...
    with (
        CtxManager1(),
        CtxManager2()
    ):
        ...
    ```


### 新的类型标注特性






2. **更好的错误消息**:
   - 改进了解析器和运行时错误的错误消息,使其更加清晰和易于理解。

3. **类型提示的改进**:
   - 提升了对类型提示的支持和功能,包括对 `TypedDict` 的增强和新的类型操作符。

4. **更灵活的字符串格式化**:
   - 改进了 f-string 的功能,支持新的转义序列和表达式。

5. **新的 `zoneinfo` 模块**:
   - 引入了 `zoneinfo` 模块,用于处理时区信息,替代了 `datetime.timezone` 和 `dateutil.tz`。

6. **改进的错误处理**:
   - 引入了 `except` 关键字的新用法,支持在 `except` 子句中直接访问异常实例。

7. **性能优化**:
   - 提升了解释器的性能和效率,特别是在解析和运行某些类型的代码时。

8. **其它改进和优化**:
   - 包括语法改进、标准库的增强和对特定功能的修复。

Python 3.10 带来了许多新特性和改进,进一步提升了语言的功能和性能,增强了开发者的编程体验。