" name="sm-site-verification"/>

目 录CONTENT

文章目录

Python3.10~3.13 版本差异

PySuper
2025-10-18 / 0 评论 / 0 点赞 / 5 阅读 / 0 字
温馨提示:
所有牛逼的人都有一段苦逼的岁月。 但是你只要像SB一样去坚持,终将牛逼!!! ✊✊✊

只说下主要的新特性

🚀 3.10

1. 模式匹配 (Match-Case)

# 新的结构模式匹配
def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something's wrong"

2. 更清晰的错误信息

# 更精确的语法错误定位
# 之前: SyntaxError: invalid syntax
# 现在: SyntaxError: expected ':' 

3. 类型注解增强

from typing import Union

# 新的联合类型操作符
def func(x: int | str) -> None:  # 替代 Union[int, str]
    pass

# 参数规范变量
from typing import ParamSpec
P = ParamSpec('P')

4. 其他重要改进

  • 带括号的上下文管理器

  • zip() 函数新增 strict 参数

  • 字典新增 mapping 属性

🚀 3.11

1. 性能大幅提升

平均性能提升 25-60%,特别优化的场景:

  • 函数调用

  • 算术运算

  • 异常处理

2. 异常增强

# 异常添加 notes 属性
try:
    raise ValueError("原始错误")
except ValueError as e:
    e.add_note("这是附加信息")
    raise

3. 类型系统改进

from typing import Self, LiteralString

# 新的 Self 类型
class Person:
    def set_name(self, name: str) -> Self:
        self.name = name
        return self

# 字面量字符串类型
def execute_query(sql: LiteralString) -> None:
    pass

4. Tomli 库集成

import tomllib  # 内置 TOML 解析器

with open("config.toml", "rb") as f:
    config = tomllib.load(f)

🚀 3.12

1. 性能进一步优化

  • 内联解释器优化

  • 更快的孤立帧执行

  • 改进的泛型类型

2. 类型系统重大升级

from typing import *

# 新的类型语法
type Point = tuple[float, float]

# 泛型别名改进
type ListOrSet[T] = list[T] | set[T]

# 更灵活的函数注解
def max[T](args: Iterable[T]) -> T:
    ...

3. f-string 增强

# f-string 现在支持嵌套
width = 10
precision = 4
value = decimal.Decimal("12.34567")
f"Result: {value:{width}.{precision}}"  # 嵌套 f-string

# 多行 f-string
message = f"""
Name: {name}
Age: {age}
Score: {score:.2f}
"""

4. 错误信息改进

  • 更详细的回溯信息

  • 更好的错误建议

  • 更清晰的属性错误信息

🚀 3.13

1. JIT 编译器实验

  • 实验性的 JIT 编译器

  • 使用 --enable-experimental-jit 编译

  • 为特定模式提供加速

2. 交互式解释器改进

  • 更好的制表符补全

  • 改进的历史记录

  • 彩色提示支持

3. GC 和内存优化

  • 更快的垃圾回收

  • 减少内存碎片

  • 改进的 immortal 对象

4. 类型系统继续增强

from typing import TypeVar, reveal_type

  • 更强大的类型推断

  • 改进的类型变量边界检查

  • 更好的协议支持

📊 性能对比

版本

性能提升

关键特性

3.10

轻微

模式匹配、更好的错误信息

3.11

25-60%

大幅性能优化、异常增强

3.12

5-10%

f-string 增强、类型语法

3.13

5-15%

JIT 实验、GC 优化

🔧 版本迁移

说一些迁移中需要重点检查的地方

  • 3.9 --> 3.10

    1. 模式匹配语法

    2. 类型注解更新

    3. 上下文管理器括号

  • 3.10 --> 3.11

    1. 异常处理逻辑

    2. 性能敏感代码测试

    3. TOML 配置迁移

  • 3.11 --> 3.12

    1. f-string 嵌套使用

    2. 新的类型语法

    3. 错误处理改进

  • 3.12 --> 3.13

    1. JIT 兼容性

    2. GC 相关代码

    3. 交互式功能使用

💡 升级建议

1. 测试策略

# 使用 tox 测试多版本兼容性
tox -e py310,py311,py312,py313

# 性能基准测试
python -m pyperf compare old.json new.json

2. 依赖检查

# 检查包兼容性
pip check
pip list --outdated

3. 渐进式升级

推荐升级路径:

3.8/3.9 → 3.10 → 3.11 → 3.12 → 3.13

🎯 总结

  • Python 3.10: 语法现代化,引入模式匹配

  • Python 3.11: 性能飞跃,异常处理增强

  • Python 3.12: 类型系统革新,f-string 强大升级

  • Python 3.13: JIT 实验,交互体验优化

每个版本都在性能、开发体验和类型系统方面有显著改进。建议根据项目需求选择合适的版本,对于新项目推荐使用 Python 3.11+ 以获得最佳性能和特性支持。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区