我正在学习编程,我正在使用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。
答案 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
直接将某些内容写入输出,通常是控制台。如果要将值存储在变量中,只需将要打印的内容分配给该变量即可。