注意: 虽然 JavaScript 对本网站不是必需的,但您与内容的互动将受到限制。请启用 JavaScript 以获得完整体验。

亮点:Python 2.5

亮点:Python 2.5

以下是 Python 2.5 的一些(主观)亮点。有关几乎所有新功能的更多详细信息,请参阅文档 Python 2.5 的新特性

更可靠

Python 现在使用 Buildbot 工具在各种平台上进行持续测试。这使我们能够在开发过程中更快地发现问题,并使发布版本更加健壮。

Andrew Kuchling 确定自 Python 2.4 以来,已修复了 350 多个补丁和 450 多个错误。

更快

一些优化来自冰岛的 NeedForSpeed 冲刺活动。在异常处理和字符串操作方面有显著的加速,以及一些其他改进性能的更改。

新的语言特性

在内部,Python 编译器现在将源代码转换为抽象语法树 (AST),然后再生成字节码。

'with' 运算符取代了常见的 try/finally 习惯用法,从而生成更清晰、更安全的代码。

生成器获得了 send、throw 和 close 方法。传递给 send 的值将在生成器恢复时由 yield 语句返回。throw 接受一个异常,并使 yield 语句在生成器中引发传递的异常。close 用于终止生成器。这使生成器成为一种协程形式,并使其功能更加强大。

添加了 (TrueValue if Condition else FalseValue) 形式的条件表达式。

当在包内部时,import 可以使用相对导入和绝对导入。

Try/except/finally 进行了更改,现在可以在同一个 try 代码块中同时拥有 except 代码块和 finally 代码块。

异常已成为新式类,并且异常层次结构进行了一些重新排列。

在内部,Python 已更改为使用 Py_ssize_t 类型 - 这意味着许多限制为 2^32 个对象的结构现在可以容纳高达 2^64 个对象。

新的或升级的内置函数

partition 和 rpartition 方法已添加到 str 和 unicode。这大大简化了搜索和拆分字符串的过程。

新的内置函数 any 和 all 分别评估迭代器是否包含任何或所有 True 值。

min 和 max 获得了 key 关键字参数,类似于 sort。

新的或升级的模块和包

为了与将经过验证的包添加到标准库的主题保持一致,在 2.5 中,我们将 ctypes、ElementTree、hashlib、sqlite3 和 wsgiref 添加到随 Python 提供的标准库中。

Google 的夏季代码活动产生了一个新的 cProfile 分析模块。这是多年来随 Python 提供的受人尊敬的 profile.py 模块的一个更高效的版本。GSoC 还为我们提供了一个重写的邮箱模块,可以读取和写入各种格式的邮箱。

struct 模块已更新以支持新的 Struct 对象。这些对象类似于 re 模块的正则表达式编译形式。

添加到标准库的其他一些较小的模块包括 uuid、msilib 和 spwd。