一尘不染

Python 中的 __future__ 用于什么以及如何/何时使用它,以及它是如何工作的

python

__future__经常出现在 Python 模块中。即使在阅读了 Python 的文档之后,我也不明白__future__它的用途以及如何/何时使用它。__future__

任何人都可以用例子解释吗?

关于__future__我收到的基本用法的一些答案似乎是正确的。

但是,我还需要了解有关如何工作的另一件事__future__

对我来说最令人困惑的概念是当前的 Python 版本如何包含未来版本的功能,以及如何在当前版本的 Python 中成功编译使用来自未来版本的功能的程序。

我猜测当前版本包含了未来的潜在功能。但是,这些功能只能通过使用才能使用__future__,因为它们不是当前标准。让我知道我是否正确。


阅读 54

收藏
2022-09-28

共1个答案

一尘不染

随着__future__模块的包含,您可以慢慢习惯不兼容的更改或引入新关键字的更改。

例如,为了使用上下文管理器,您必须from __future__ import with_statement在 2.5 中这样做,因为with关键字是新的,不应再用作变量名。为了with在 Python 2.5 或更早版本中用作 Python 关键字,您需要使用上面的导入。

另一个例子是

from __future__ import division
print 8/7  # prints 1.1428571428571428
print 8//7 # prints 1

没有这些__future__东西,两个print语句都会打印1

内部区别在于,没有该导入,/则映射到该__div__()方法,而使用该导入__truediv__()。(无论如何,//请致电__floordiv__()。)

Apropos printprint成为 3.x 中的函数,失去其作为关键字的特殊属性。所以情况正好相反。

>>> print

>>> from __future__ import print_function
>>> print
<built-in function print>
>>>
2022-09-28