python中关键字”print”与函数”print”的实际区别

Practical difference between keyword “print” and function “print” in Python

本问题已经有最佳答案,请猛点这里访问。

如果我们用的是python2x,

1
from __future__ import print_function

print将成为以前的keyword功能。

但实际上,

这两个有什么不同?

我仍然可以像使用keyword时一样使用print,那么它有什么区别,它如何比以前更有效?


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

作为快速的区别,打印功能(python 3或from __future__ import print_function)有几个非常容易做的事情,或者至少非常一致:

没有换行符

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

这在Python2中更为复杂。

打印到STDRR

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

在Python 2中。


不是真的。通过函数,您必须执行print(stuff),但是通过语句,您可以执行print stuff

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

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

另外,在python 3中,print始终是一个函数。在python 2中,如果需要print作为函数,则必须使用__future__import。