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

Suf*_*ori 2 python

对于Python2x如果我们使用,

from __future__ import print_function
Run Code Online (Sandbox Code Playgroud)

print将成为功能是以前的keyword

但实际上,

其中两个有何不同?

我仍然可以print像使用它时那样使用它keyword,那么它有什么不同,它怎么能比以前更有效?

Die*_*anz 7

在这里,您可以阅读一些带有示例的官方文档PEP3105以及更多详细信息.

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

没有新行

print('Hello!', end='')
Run Code Online (Sandbox Code Playgroud)

在python 2中更复杂.

打印到stderr

import sys
print('ERROR!!!!!', file=sys.stderr)
Run Code Online (Sandbox Code Playgroud)

在python 2中.


Bre*_*arn 6

并不是的.使用您必须执行的功能print(stuff),但使用您可以执行的语句print stuff.

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

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

此外,print它始终是Python 3中的一个函数.__future__如果您想要print作为函数,必须使用导入.