Python中关键字“print”和函数“print”之间的实际区别

时间:2013-10-18 16:44:08

标签: python

对于Python2x如果我们使用,

from __future__ import print_function

print将成为之前为keyword

的函数

但实际上,

其中两个有何不同?

我仍然可以使用print,就像我使用keyword时那样{{1}},然后它会有什么不同呢?它怎么能比以前更有效呢?

2 个答案:

答案 0 :(得分:7)

在这里,您可以阅读一些official documentation示例和PEP3105以及更多详细信息。

作为快速差异,有几件事情很容易用打印功能(Python 3或from __future__ import print_function)或至少非常一致:

没有换行

print('Hello!', end='')

这更复杂in python 2

打印到stderr

import sys
print('ERROR!!!!!', file=sys.stderr)

In python 2

答案 1 :(得分:6)

不是真的。使用该功能,您必须print(stuff),但使用您可以print stuff的语句。

主要优点是,如果print是一个函数,则可以为该名称指定不同的函数。例如,您可以创建一个新功能,不仅可以将数据输出到屏幕,还可以将其记录到文件中。如果将此函数分配给内置print,则使用print的任何代码都将自动登录到文件。使用print作为语句是不可能的,您必须使用其他技术才能获得相同的效果。

还有一些与print格式化输出相关的较小变化。该语句使用“魔术”语法(例如,尾随逗号抑制了以下空格),而该函数使用标准的关键字参数约定。

此外,print始终是Python 3中的一个函数。如果您希望将__future__作为函数,则必须使用print导入。