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