Python 3.13.0 新特性解析

Python 3.13.0 版本于 2024 年 10 月 7 日发布,带来了一系列新特性和改进,使得 Python 语言更加强大和易于使用。以下是该版本的主要更新内容。

交互式解释器经过升级,现在支持多行编辑和彩色输出,提高了用户友好性和视觉吸引力。这些改进受到了 PyPy 特性的启发,帮助开发者更轻松地编写和调试代码。例如:

def greet(name): return f"Hello, {name}!" print(greet("World"))

输出结果为:

Hello, World!

Python 3.13.0 引入了实验性模式,关闭了全局解释器锁(GIL),允许多个线程同时运行。这一特性在 Windows 和 macOS 安装程序中可用,提高了多线程应用程序的性能,并更好地利用了现代多核处理器。例如:

import threading def print_numbers(): for i in range(5): print(i) threads = [] for _ in range(5): thread = threading.Thread(target=print_numbers) threads.append(thread) thread.start() for thread in threads: thread.join()

输出结果为线程打印的数字序列。

此版本包括一个实验性的 JIT 编译器,旨在通过在运行时编译代码的部分来加速执行。尽管仍处于早期阶段,但这一特性未来可能会带来重大的性能提升,帮助Python与 Java 和 C# 等语言更好地竞争。

locals() 内置函数的行为经过改进,提供了在修改返回的映射时的明确语义。这一改进确保了调试器可以更一致地运行。例如:

def example_function(): x = 10 y = 20 local_vars = locals() local_vars['x'] += 5 # 修改局部变量 return x, y print(example_function())

输出结果为 (10, 20)。

Python 3.13.0 包括了更新版本的 mimalloc 内存分配器,现在它是可选的,但如果平台支持,默认情况下会启用。这个分配器有助于减少内存使用,特别是对于使用大量文档字符串的应用程序。

def large_docstring_function(): """This is a function with a large docstring that is intended to demonstrate how leading indentation is stripped to save memory.""" pass

dbm 模块现在默认使用 dbm.sqlite3 后端创建新的数据库文件,增强了其功能和可靠性。这一变化通过利用 SQLite 的强大特性,简化了 dbm 模块的使用。例如:

import dbm with dbm.open('example.db', 'c') as db: db['key'] = 'value' print(db['key']) # 输出: value

输出结果为 b 'value'。

macOS 的最低支持版本已从 10.9 更新为 10.13(High Sierra),意味着不再支持旧版本的 macOS。这一变化允许开发者专注于现代 macOS 特性和优化,确保与当前系统的兼容性。

Python 3.13.0 将 WebAssembly 系统接口(WASI)升级为 Tier 2 支持,而不再官方支持 Emscripten。此外,iOS 和 Android 现在被归类为 Tier 3 支持平台。这种分类帮助开发者了解他们在使用 Python 的不同平台上可以期待的支持和稳定性水平。

类型模块的新特性包括支持类型参数中的类型默认值、新的类型缩小注释(typing.TypeIs)以及在类型系统中标记弃用的注释。这些改进增强了类型提示功能,使Python在类型检查方面更加健壮,并提高了代码清晰度。例如:

from typing import TypeVar, List T = TypeVar('T', bound=int) def sum_numbers(numbers: List[T]) -> T: return sum(numbers) print(sum_numbers([1, 2, 3]))

输出结果为 6。

Python 3.13.0 根据 PEP 594 移除了许多弃用的模块,旨在简化标准库。被移除的模块包括 aifc、cgi 和 telnetlib 等。这次清理减少了标准库的膨胀,并鼓励开发者使用更现代和高效的替代品。

检查当前Python版本:

!python --version

安装 Python 3.13:

!sudo apt-get update -y !sudo apt-get install python3.13

更新替代品以指向新 Python 版本:

!sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1 !sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.13 2 !python --version
  • 交互式解释器:标准解释器 vs. 增强的多行编辑和颜色支持
  • GIL 处理:标准 GIL vs. 实验性自由线程构建模式
  • 性能:5% 的整体性能提升vs. 引入初步 JIT 以提升性能
  • 内存管理:标准内存管理 vs. 可选的 mimalloc,减少内存使用
  • 错误报告:增强的错误消息 vs. 异常回溯的进一步改进
  • dbm 模块:标准 dbm 功能 vs. 默认使用 dbm.sqlite3 后端
  • macOS 支持:支持 macOS 10.9 及更高版本 vs. 最低支持更新至 macOS 10.13
  • 平台支持:标准平台支持 vs. WASI 为 Tier 2;iOS 和 Android 为 Tier 3
  • 类型:新的类型注释语法 vs. 新的类型默认值、缩小注释和弃用
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485