要获得3.0打印功能,我们在Python 2.6中执行以下操作:
from __future__ import print_function
Run Code Online (Sandbox Code Playgroud)
但要使用函数我们调用print()而不是print_function().这只是一个不一致还是有充分的理由呢?
为什么不是以下内容:
from __future__ import print
Run Code Online (Sandbox Code Playgroud)
kin*_*all 47
原因是,当您从中导入时,__future__
实际上只是设置一个标志,告诉解释器的行为与平时略有不同 - 在这种情况下print_function
,该print()
函数可用于代替语句.__future__
因此,该模块是"特殊的"或"魔术" - 它不像通常的模块那样工作.
Sen*_*ran 11
print_function
是一个FeatureName
无法与混淆print
内置函数本身.它是未来可用的功能,因此您可以使用它可以提供的内置功能.
其他功能包括:
all_feature_names = [
"nested_scopes",
"generators",
"division",
"absolute_import",
"with_statement",
"print_function",
"unicode_literals",
]
Run Code Online (Sandbox Code Playgroud)
有一些特定的原因,当您将代码迁移到下一个更高版本时,您的程序将保持不变,例如使用更新的功能而不是__future__
版本.此外,如果它是函数名称或关键字本身,它可能会导致解析器混淆.
归档时间: |
|
查看次数: |
31223 次 |
最近记录: |