## 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 带来了许多新特性和改进,进一步提升了语言的功能和性能,增强了开发者的编程体验。