什么是';打印';用Python?

什么是';打印';用Python?,python,Python,我理解打印的功能,但是语言元素是什么类型的?我认为这是一个函数,但为什么会失败呢 >>> print print SyntaxError: invalid syntax print不是一种功能吗?它不应该打印这样的东西吗 >>> print print <function print at ...> >>打印 在2.7及以下版本中,print是一条语句。在python 3中,print是一个函数。要在Python2.6或2.7中使用print函

我理解打印的功能,但是语言元素是什么类型的?我认为这是一个函数,但为什么会失败呢

>>> print print
SyntaxError: invalid syntax
print
不是一种功能吗?它不应该打印这样的东西吗

>>> print print
<function print at ...>
>>打印

在2.7及以下版本中,
print
是一条语句。在python 3中,
print
是一个函数。要在Python2.6或2.7中使用print函数,可以执行以下操作

>>> from __future__ import print_function
>>> print(print)
<built-in function print>
>>>来自未来导入打印功能
>>>打印(打印)

请参阅Python语言参考,以及更改的原因。

print
是一个在Python 3中已纠正的错误。在Python3中,它是一个函数。在Python1.x和2.x中,它不是一个函数,它是一种特殊形式,如
if
while
,但与这两种形式不同,它不是一个控制结构

因此,我想最准确的方法是调用语句。

在Python中,所有语句(赋值除外)都用保留字表示,而不是可寻址对象。这就是为什么您不能简单地
打印打印
,而您会得到一个
语法错误
。这是一个保留字,不是对象

令人困惑的是,可以有一个名为
print
的变量。您不能以正常方式处理它,但可以
setattr(locals(),'print',somevalue)
然后
print locals()['print']

其他保留字,可能需要作为变量名,但仍然是冗余的:

class
import
return
raise
except
try
pass
lambda
在Python 3中,是一个内置函数(对象)

在此之前,有一份声明。示范

Python2.x:
在Python 2中,
print
是一个语句,它与变量或函数完全不同。语句不是可以传递给
type()
的Python对象;它们只是语言本身的一部分,甚至比内置函数更重要。例如,您可以执行
sum=5
(即使您不应该),但不能执行
print=5
if=7
,因为
print
if
都是语句

在Python3中,
print
语句替换为
print()
函数。因此,如果执行
键入(打印)
,它将返回

奖金:

在Python 2.6+中,您可以将来自uuu future uuuu导入打印u函数的
放在脚本的顶部(作为第一行代码),并且
print
语句将替换为
print()
函数

>>> # Python 2
>>> from __future__ import print_function
>>> type(print)
<type 'builtin_function_or_method'>
Python 2 >>>来自未来导入打印功能 >>>打字(打印)
请注意,上述注释中的“Note”拼写错误为“Not”;)是时候把它修好了。Breaked print语句是过去没有使用Python的#1原因。不是第一条注释以前指的是现在已删除的注释。@wim但我不知道第一条注释不能指的是我在上面看到的注释。“verboten”用的是英语吗?有趣。@cularis:这个词可能因为美国电影中关于第二次世界大战的故事而成为更常用的外来词;在Python 2.6+中,始终有内置的
print
函数
from_uuufuture_uuu导入print_函数
从模块中删除
print语句
解析,这样它就不会干扰内置函数。在Python 3中,OP将获得相同的输出,尽管原因不同
print-print
在这两种语言中都是错误的语法。@Wooble:绝对正确。作为一个函数,
print()
需要括号。是的,我只是指“你必须使用python<3”。错误消息在两个方面都与OP完全相同。@Downvoter:我很好奇您认为我的答案中哪些部分“没有用”。
print
可能是函数或语句(语言构造),这取决于您使用的Python的主要版本,但它肯定不是运算符。
% pydoc3.1 print

Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout)

    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file: a file-like object (stream); defaults to the current sys.stdout.
    sep:  string inserted between values, default a space.
    end:  string appended after the last value, default a newline.
>>> # Python 2
>>> from __future__ import print_function
>>> type(print)
<type 'builtin_function_or_method'>