Какая версия Python требуется из __future__ import with_statement? - PullRequest
25 голосов
/ 25 сентября 2010

Используя python 2.6.5, я могу использовать оператор with без вызова from __future__ import with_statement.Как я могу сказать, какая версия Python поддерживает with без специального импорта из __future__?

Ответы [ 3 ]

46 голосов
/ 25 сентября 2010

__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__)
16 голосов
/ 25 сентября 2010

Это нужно только в Python 2.5. Старые версии (<= 2.4) не поддерживают его, а в более новых версиях (> = 2.6) он включен по умолчанию.

Так что, если вы хотите поддерживать Python> = 2.5, вы можете просто поставить from __future__ import with_statement в начале. Для более новых версий это будет просто проигнорировано.

1 голос
/ 25 сентября 2010

Из документа:

New in version 2.5.
...