__future__在Python中用途是什么,如何/何时使用,以及它的工作原理是什么。

40 浏览
0 Comments

__future__在Python中用途是什么,如何/何时使用,以及它的工作原理是什么。

__future__ 出现在许多 Python 模块中。即使在阅读 Python 的 __future__ 文档 后,我仍然不明白 __future__ 的用途和如何/何时使用它。

有人能给出示例解释吗?

我收到的有关 __future__ 基本用法的几个答案似乎是正确的。

但是,我需要了解有关 __future__ 工作原理的另一件事:

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

我猜测,当前版本打包了未来的潜在功能。但是,只有通过使用 __future__ 才能使用这些功能,因为它们不是当前的标准。如果我说得对,请告诉我。

admin 更改状态以发布 2023年5月21日
0
0 Comments

当你执行以下代码时:

from __future__ import whatever


你实际上没有使用一个import语句,而是一个future statement。你看错了文档,因为你实际上并没有导入那个模块。
Future statements是特殊的--它们改变你的Python模块的解析方式,所以它们必须出现在文件的顶部。它们赋予你的文件中单词或符号新的 -- 或者不同的 -- 含义。来自文档的描述如下:

future statement是编译器的指示,指定一个特定的模块应该使用语法或语义进行编译,这些语法或语义将在Python的指定未来版本中可用。Future statement的目的是为了更轻松地迁移到将语言引入不兼容更改的Python未来版本。它允许在发布新特性之前按模块使用新特性。

如果你真的想要导入__future__模块,只需执行以下语句:

import __future__


然后像往常一样访问它。

0
0 Comments

使用__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

内部的区别是,如果没有该导入,/将映射到__div__()方法,而使用它时,将使用__truediv__()。(在任何情况下,//调用__floordiv__()。)

关于print:在3.x中,print成为一个函数,失去了作为关键字的特殊属性。因此,反过来也是如此。

>>> print
>>> from __future__ import print_function
>>> print

>>>

0