为什么在导入print_function(在Python 2.6中)后需要调用print?

11 浏览
0 Comments

为什么在导入print_function(在Python 2.6中)后需要调用print?

要在Python 2.6中获取3.0打印函数,我们需要执行以下操作:

from __future__ import print_function

但是要使用该函数,我们要调用print()而不是print_function()。这是一个不一致性,还是有一个很好的原因呢?

为什么不使用以下方法:

from __future__ import print

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

print_function是一个功能名,不要与内置的print函数混淆。
它是一项从未来开始提供的功能,使您可以使用它所提供的内置函数。

其他功能包括:

all_feature_names = [
    "nested_scopes",
    "generators",
    "division",
    "absolute_import",
    "with_statement",
    "print_function",
    "unicode_literals",
]

存在特定的理由,当您将代码迁移到更高版本时,您的程序将保持不变,而使用更新的功能而不是__future__版本。如果它是函数名或关键字本身,可能会让解析器感到困惑。

0
0 Comments

原因在于当你从__future__导入时,你实际上只是设置了一个标志,告诉解释器以稍微不同于平常的方式运行 - 在print_function的情况下,print()函数可用于取代语句。因此,__future__模块是"特殊"或"神奇"的 - 它不像通常的模块那样工作。

0