__future__
经常出现在 Python 模块中。即使在阅读 the Python's __future__
doc 之后,我也不明白 __future__
的用途以及如何/何时使用它.
谁能举例说明?
我收到的一些关于 __future__
基本用法的答案似乎是正确的。
但是,关于 __future__
的工作原理,我还需要了解一件事:
对我来说最令人困惑的概念是当前的 python 版本如何包含 future 版本的功能,以及使用 future 版本的功能的程序如何在当前版本的 Python 中成功编译。
我猜测当前版本包含了 future 的潜在功能。但是,这些功能只能通过使用 __future__
获得,因为它们不是当前标准。让我知道我是否正确。
最佳答案
随着 __future__
模块的加入,您可以慢慢习惯不兼容的更改或引入新关键字的更改。
例如,为了使用上下文管理器,您必须在 2.5 中执行 from __future__ import with_statement
,因为 with
关键字是新的,不应用作变量名不再。为了在 Python 2.5 或更早版本中使用 with
作为 Python 关键字,您需要使用上述导入。
另一个例子是
from __future__ import division
print 8/7 # prints 1.1428571428571428
print 8//7 # prints 1
没有 __future__
的东西,两个 print
语句都会打印 1
。
内部的区别在于,没有那个 import,/
被映射到 __div__()
方法,而有了它,__truediv__()
用来。 (无论如何,//
调用 __floordiv__()
。)
恰本地 print
:print
在 3.x 中变成了一个函数,失去了它作为关键字的特殊属性。所以情况正好相反。
>>> print
>>> from __future__ import print_function
>>> print
<built-in function print>
>>>
关于python - Python 中的 __future__ 用于什么以及如何/何时使用它,以及它是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7075082/