Python 3.13 更新概览:有哪些新特性

文摘   2024-10-15 13:05   上海  
发布亮点

Python 3.13 是 Python 编程语言的最新稳定版本,对语言、实现和标准库进行了一系列更改。最大的变化包括一个新的交互式解释器、对在自由线程模式下运行的实验性支持和即时编译器

错误消息继续改进,现在默认情况下回溯以彩色突出显示。locals()内置函数现在已定义更改返回映射的语义,并且类型参数现在支持默认值。

库更改包括删除已弃用的 API 和模块,以及对用户友好性和正确性的常规改进。几个旧标准库模块现已被删除,因为它们在 Python 3.11 中已被弃用。

由于官方下载慢,python3.13版本的安装包已为大家准备好。

百度网盘链接: https://pan.baidu.com/s/1iDQGzMpaTxZenpd1Pb73-A?pwd=baig 提取码: baig。

夸克网盘链接:打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。链接:https://pan.quark.cn/s/4e5897aa91ed

需要其他版本的安装包或者python办公自动化资料,请加文末微信获取

解释器改进
  • 更好的交互式解释器:基于PyPy 项目代码的新交互式shell
    • 多行编辑并保存历史记录
    • 支持 REPL 特定的命令如help,exit、quit,而无需将它们作为函数调用
    • 默认情况下启用彩色的提示和回溯
    • F1使用单独的命令历史记录进行交互式帮助浏览
    • 使用它的历史记录浏览F2可以跳过输出以及 >>>和...提示。
    • 使用“粘贴模式”F3可以更轻松地粘贴更大的代码块(F3再次按下可返回常规提示)。
  • 改进的错误信息
    • 解释器现在在终端中显示回溯时默认使用颜色。此功能可以 通过新的PYTHON_COLORS环境变量以及规范NO_COLOR和FORCE_COLOR环境变量。
    • 一个常见的错误是编写与标准库模块同名的脚本。当这导致错误时,我们现在会显示更有用的错误消息:
$ python random.py
Traceback (most recent call last):
  File "/home/me/random.py", line 1, in <module>
    import random
  File "/home/me/random.py", line 3, in <module>
    print(random.randint(5))
          ^^^^^^^^^^^^^^
AttributeError: module 'random' has no attribute 'randint' (consider renaming '/home/me/random.py' since it has the same name as the standard library module named 'random' and the import system gives it precedence)

类似地,如果脚本与其尝试导入的第三方模块同名并且导致错误,我们还会显示更有用的错误消息:

$ python numpy.py
Traceback (most recent call last):
  File "/home/me/numpy.py", line 1, in <module>
    import numpy as np
  File "/home/me/numpy.py", line 3, in <module>
    np.array([1, 2, 3])
    ^^^^^^^^
AttributeError: module 'numpy' has no attribute 'array' (consider renaming '/home/me/numpy.py' if it has the same name as a third-party module you intended to import)
  • 其他
    • 自由线程的 CPython
    • 实验性的即时 (JIT) 编译器
    • 定义突变语义locals()
    • 支持移动平台
Python 数据模型改进
  • __static_attributes__self.X存储类主体中任何函数所访问的属性的名称。
  • __firstlineno__记录类定义的第一行号。
标准库的重大改进
  • 添加新的PythonFinalizationError异常,当操作在完成过程中被阻止时引发。
  • 该argparse模块现在支持弃用的命令行选项、位置参数和子命令。
  • 新功能base64.z85encode()支持对Z85 数据base64.z85decode() 进行编码和解码。
  • 该copy模块现在具有一个copy.replace()功能,支持许多内置类型和定义该__replace__()方法的任何类。
  • 新dbm.sqlite3模块现在是默认dbm后端。
  • 该os模块有一套新功能, 可用于处理 Linux 的计时器通知文件描述符。
  • 该random模块现在有一个命令行界面。
安全改进
  • ssl.create_default_context()设置了ssl.VERIFY_X509_PARTIAL_CHAIN和ssl.VERIFY_X509_STRICT作为默认旗标。
C API 改进
  • 该Py_mod_gil插槽现在用于指示扩展模块支持在禁用GIL 的情况下运行。
  • 已添加PyTime C API,提供对系统时钟的访问。
  • PyMutex是一个新的轻量级互斥锁,占用一个字节。
  • 有一套新的函数 用于生成PEP 669监控 C API 中的事件。
新的类型标注特性
  • 类型参数(typing.TypeVar、、typing.ParamSpec和typing.TypeVarTuple)现在支持默认值
  • 新的warnings.deprecated()装饰器增加了在类型系统和运行时标记弃用的支持
  • typing.ReadOnly可用于将某项标记为 typing.TypedDict类型检查器的只读
  • typing.TypeIs提供更直观的类型缩小行为,作为替代typing.TypeGuard
平台支持
  • Apple 的 iOS 现在是官方支持的平台,第 3 级。
  • Android 现在是官方支持的平台,第 3 级。
  • wasm32-wasi现在支持二级平台。
  • wasm32-emscripten不再是官方支持的平台。
重要删除:
  • 19个遗留的stdlib 模块已从标准库中删除
  • 删除2to3工具和lib2to3模块(在 Python 3.11 中已弃用)。
  • 删除该tkinter.tix模块(Python 3.6 中已弃用)。
  • 删除该locale.resetlocale()功能。
  • 删除typing.io和typing.re命名空间。
  • 删除链接的classmethod描述符。
发布时间表变更

Python 年度发布周期已更新,将新版本的完整支持bugFix期限延长至两年,此更新的政策意味着:

  • Python 3.9–3.12 有一年半的全面支持,随后是三年半的安全修复。
  • Python 3.13 及更高版本有两年的全面支持,随后是三年的安全修复。


会敲代码的程序媛
上海的程序媛,爱代码,爱健身,爱户外运动,更爱搞副业。
 最新文章