Practical difference between keyword “print” and function “print” in Python
如果我们用的是python2x,
1
| from __future__ import print_function |
print将成为以前的keyword功能。
但实际上,
这两个有什么不同?
我仍然可以像使用keyword时一样使用print,那么它有什么区别,它如何比以前更有效?
- 这不是效率问题。
- PEP-3105:使打印成为一种功能
在这里,您可以阅读一些带有示例的官方文档,以及带有更多详细信息的PEP3105。
作为快速的区别,打印功能(python 3或from __future__ import print_function)有几个非常容易做的事情,或者至少非常一致:
没有换行符
这在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。
- 但这并不能使它更好吗?现在,是吗?
- 永远记住"更好"是相对的。仅仅因为一个软件功能看起来并不能直接为您的项目带来好处,并不意味着它不会给其他人(可能有数千人)带来好处。对一个人有效的并不一定对其他人有效,反之亦然。