2

对于 Python2x,如果我们使用,

from __future__ import print_function

print成为以前的功能keyword

但实际上,

这两个有什么不同?

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

4

2 回答 2

9

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

作为快速的区别,有几件事很容易用 print 函数(Python 3 或from __future__ import print_function)或至少非常一致地完成:

没有换行符

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

这在 python 2中更复杂。

打印到标准错误

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

在蟒蛇 2

于 2013-10-18T16:47:38.207 回答
7

并不真地。用函数你必须做print(stuff),但用语句你可以做print stuff

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

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

此外,print在 Python 3 中始终是一个函数。在 Python 2 中,__future__如果您想print将其用作函数,则必须使用导入。

于 2013-10-18T16:45:20.243 回答