Python 中的 __future__ 模块

17 Mar 2025 | 4 分钟阅读

什么是 __future__ 模块?

在 Python 中,我们知道有很多内置模块,其中包含许多函数,可以提高代码的效率并增加生产力。同样,__future__ 模块是 Python 中的一个内置模块,它为当前 Python 版本中不存在的 Python 代码提供了一些附加功能。这些功能将在未来集成到 Python 中,但借助 __future__ 模块,我们可以在当前版本的 Python 中使用这些功能。

我们将在代码中导入 future 模块,并将使用以下所有函数或功能

  • division (除法)
  • generator (生成器)
  • absolute_import (绝对导入)
  • with_statement (with 语句)
  • print_function (print 函数)
  • unicode_literals (Unicode 字面量)
  • annotations (注解)
  • generator_stop (生成器停止)
  • nested_scopes (嵌套作用域)

以上列表中总共列出了九个主要功能,它们是通过 __future__ 模块实现的。我们将通过各自的 Python 代码示例来展示每个功能。

示例

输出

__future__ module in Python

说明

在上面的代码中,我们首先将 future 模块导入到我们的文件中。然后,我们使用其 all_feature_names 属性将 future 模块的特性打印成一个列表。

__future__ 模块与 print_function (print 函数)

在 Python 2 或更低版本中,我们使用不同的方式来使用 print 语句。

Python2 代码

输出

__future__ module in Python

但在 Python 中或在使用 future 模块时,我们改变了 print 语句。

示例 1

输出

__future__ module in Python

说明

在上面的代码中,我们通过 future 模块改变了 Python 2 中 print 语句的使用方式。我们使用了括号写了语句,并且运行良好。

示例 2

输出

__future__ module in Python

说明

在上面的代码中,我们在 Python 2 中使用了 print 函数的 end 属性,而没有导入 future 模块,我们得到了一个语法错误,因为这种使用 print 语句的方式是无效的。

Example3

输出

__future__ module in Python

说明

在上面的代码中,我们导入了 future 模块,然后使用了 print 函数的 end 属性。此属性用于在语句末尾附加任何字符或字符串,并且在 Python 2 版本中使用 future 模块时运行良好。

示例 4

输出

__future__ module in Python

说明

在上面,我们使用了 Python 3 中定义的 "sep" 属性,如果在 Python 2 的编译器中编写,它会给出语法错误。

示例 5

输出

__future__ module in Python

说明

在上面的代码中,我们导入了 future 模块,然后使用了 sep 属性。此属性用于分隔两个语句,第三个语句是它接收的输入。

因此,由于 __future__ 模块,这段代码在 Python 2 中运行良好。

__future__ 模块与 Unicode literals (Unicode 字面量)

在 Python 2 中,字符串被视为字节字符串,但在 Python 3 中,字符串被视为 Unicode 字符串,因此我们也可以在 Python 2 中使用 Unicode 字面量,方法是使用 future 模块。

示例 6

输出

__future__ module in Python

说明

在上面的代码中,我们使用 type 函数检查了变量的类型,它是 str 类型。

示例 7

输出

__future__ module in Python

说明

在上面的代码中,我们在 python2 编译器中使用 type 函数检查了字符串的类型。我们得到类型是 Unicode,因为我们在代码中导入了 future 模块,并且在 Python 3 中,字符串被视为 Unicode 字面量。

示例 8

输出

__future__ module in Python

说明

在上面的代码中,我们使用了一个字节字符串并将其编码为 utf-8,因此我们得到了一个错误。

示例 9

输出

__future__ module in Python

说明

在上面的代码中,我们导入了 __future__ 模块,然后使用了 utf-8 编码,运行得非常好。