我想在某些生产代码使用with语句在Python 2.5。据回迁,我应该期待任何问题(例如,与其他机器上的可用性/兼容性/等)?

这是代码

from __future__ import with_statement

与Python 2.6兼容?

有帮助吗?

解决方案

with_statement没有向后移植但在Python 2.5实现。添加新的关键字或语法可以打破现有的应用程序。与Python的方式,他们决定来处理,这是允许人们选择加入这些功能早,所以你可以慢慢地过渡您的代码。

http://python.org/doc/2.5.2/ REF / future.html

  

一个未来语句是一个指令   编译器的特定模块   应使用语法来编译或   语义将在可用   指定未来的Python版本。   未来的声明意在   轻松移植到未来的版本   蟒蛇是不相容的介绍   更改语言。它允许使用   的每个模块上的新功能   发布之前的基础,其中,   特征变得标准。

您可以实际检查期货获得第一时支持,当不再需要进口的信息,等等。

Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import __future__
>>> dir(__future__)
['CO_FUTURE_ABSOLUTE_IMPORT', 'CO_FUTURE_DIVISION', 'CO_FUTURE_WITH_STATEMENT', 'CO_GENERATOR_ALLOWED', 'CO_NESTED', '_Feature', '__all__', '__builtins__',
__doc__', '__file__', '__name__', 'absolute_import', 'all_feature_names', 'division', 'generators', 'nested_scopes', 'with_statement']
>>> __future__.with_statement
_Feature((2, 5, 0, 'alpha', 1), (2, 6, 0, 'alpha', 0), 32768)
>>>

我个人已经大量使用在Python 2.5 with_statement远远超过一年,并没有问题。我也被透明与Python 2.6上运行的代码。有他们在语言清理工作过一些奇怪的角落案件,大多与干净,并正确压实嵌套语句。

其他提示

是,这种说法是在Python 2.6无操作,让你可以自由地用它来作with关键字在2.5的代码为好,不影响在2.6代码的运行。这其实是在Python“从未来进口”的一般设计意图!

可以在Python 2.6调用这个和3.0 / 1没有问题(这是一个无操作存在)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top