对于 Python2x,如果我们使用,
from __future__ import print_function
将print
成为以前的功能keyword
但实际上,
这两个有什么不同?
我仍然可以print
像以前一样使用它keyword
,那么它有什么不同,它怎么能比以前更有效率呢?
对于 Python2x,如果我们使用,
from __future__ import print_function
将print
成为以前的功能keyword
但实际上,
这两个有什么不同?
我仍然可以print
像以前一样使用它keyword
,那么它有什么不同,它怎么能比以前更有效率呢?
在这里,您可以阅读一些带有示例的官方文档和更多详细信息的PEP3105。
作为快速的区别,有几件事很容易用 print 函数(Python 3 或from __future__ import print_function
)或至少非常一致地完成:
没有换行符
print('Hello!', end='')
这在 python 2中更复杂。
打印到标准错误
import sys
print('ERROR!!!!!', file=sys.stderr)
并不真地。用函数你必须做print(stuff)
,但用语句你可以做print stuff
。
主要优点是,如果print
是一个函数,您可以为该名称分配不同的函数。例如,您可以创建一个新函数,该函数不仅将数据输出到屏幕,还将其记录到文件中。如果将此函数分配给 builtin print
,则使用的任何代码print
都会自动记录到文件中。使用 as 语句是不可能print
的,您必须借助其他技术来获得相同的效果。
还有一些与print
格式化输出的方式相关的较小变化。该语句使用“魔术”语法(例如,尾随逗号抑制了后面的空格),而该函数使用标准关键字参数约定。
此外,print
在 Python 3 中始终是一个函数。在 Python 2 中,__future__
如果您想print
将其用作函数,则必须使用导入。