哪个Python版本需要从__future__导入with_statement?

28 投票
3 回答
12915 浏览
提问于 2025-04-16 04:34

在使用 Python 2.6.5 的时候,我可以直接使用 with 这个语句,而不需要先调用 from __future__ import with_statement。我该怎么知道哪个版本的 Python 支持 with,而不需要特别从 __future__ 导入它呢?

3 个回答

2

来自文档:

New in version 2.5.
17

你只需要在Python 2.5中使用这个功能。更早的版本(2.4及以下)不支持这个功能,而更新的版本(2.6及以上)默认就已经启用了。

所以,如果你想让你的代码支持Python 2.5及以上的版本,你只需在开头加上from __future__ import with_statement这行代码。对于更新的版本,这行代码会被自动忽略。

51

__future__ 特性是自我说明的。你可以试试这个:

>>> from __future__ import with_statement
>>> with_statement.getOptionalRelease()
(2, 5, 0, 'alpha', 1)
>>> with_statement.getMandatoryRelease()
(2, 6, 0, 'alpha', 0)

这些分别表示支持 from __future__ import with_statement 的第一个版本,以及第一个可以不使用 from __future__ 而支持它的版本。

另外,看看这个:

>>> import __future__
>>> help(__future__)

撰写回答