为什么我不能将python的print分配给变量?

时间:2013-12-24 22:31:15

标签: python python-2.7 function-pointers variable-assignment

我正在学习编程,我正在使用Python启动。在那里,我看到我可以做这样的事情:

>>>> def myFunction(): return 1
>>>> test = myFunction
>>>> test()
1

但是,如果我尝试对print执行相同操作,则会失败:

>>>> test2 = print
File "<stdin>", line 1
  test2 = print
              ^
SyntaxError: invalid syntax

为什么print与我创建的函数不同?这是使用Python v2.7.5。

2 个答案:

答案 0 :(得分:18)

print is a statement,而非功能。这是changed in Python 3部分允许你做这样的事情。在Python 2.7中,您可以通过在文件顶部执行from __future__ import print_function来将打印作为一项功能,然后您确实可以执行test = print

请注意,将print作为一项功能,您不能再执行print x但必须执行print(x)(即必须使用括号)。

答案 1 :(得分:3)

除了BrenBarn关于打印功能的说法外,请注意print不会返回值。当然声明永远不会返回一个值(这就是你看到错误的原因),但即使作为一个函数,你也不会得到函数打印的值作为返回值。

相反,print直接将某些内容写入输出,通常是控制台。如果要将值存储在变量中,只需将要打印的内容分配给该变量即可。