【问题标题】:Practical difference between keyword "print" and function "print" in Python [duplicate]Python中关键字“print”和函数“print”之间的实际区别[重复]
【发布时间】:2013-10-27 14:29:18
【问题描述】:

对于 Python2x 如果我们使用,

from __future__ import print_function

print 将变为以前的keyword 函数

但实际上,

这两个有什么不同?

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

【问题讨论】:

标签: python


【解决方案1】:

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

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

无换行符

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

那更复杂in python 2

打印到标准错误

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

In python 2.

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

    • 但这并没有让它变得更好吗?现在,是吗?
    • 永远记住“更好”是相对的。仅仅因为软件功能似乎不会直接使您的项目受益并不意味着它不会给(可能成千上万的)其他人带来任何好处。适合自己的不一定适合其他人,反之亦然。
    猜你喜欢
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 2013-12-27
    相关资源
    最近更新 更多