在Python中打印一个函数?

时间:2012-08-03 16:20:25

标签: python python-2.x

在python中,一切都是对象,你可以轻松传递它。

所以我能做到:

>> def b():
   ....print "b"
>> a = b
>> a()
   b

但如果我这样做

a = print

我得到SyntaxError。为什么这样?

4 个答案:

答案 0 :(得分:20)

在Python 2.x中,print是一个声明的函数。在2.6+中,您可以使用from __future__ import print_function将其设置为给定模块中的函数。在Python 3.x中,它是一个可以传递的函数。

答案 1 :(得分:6)

在python2中,print是一个声明。如果您执行from __future__ import print_function,则可以按照您的描述进行操作。在python3中,你尝试过没有任何导入的东西,因为print是一个函数。

PEP3105

中介绍了这一点

答案 2 :(得分:4)

其他答案都是正确的。 print是一个语句,而不是python2.x中的函数。你有什么将在python3上工作。我唯一需要补充的是,如果你想要一些适用于python2和python3的东西,你可以传递sys.stdout.write。这不会写一个换行符(与print不同) - 它的作用就像任何其他文件对象一样。

答案 3 :(得分:3)

print不是pre 3.x python中的函数。它甚至看起来不像一个,你不需要通过(params)

调用