在Python中打印一个函数?

tar*_*ish 9 python python-2.x

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

所以我可以这样做:

>> def b():
   ....print "b"
>> a = b
>> a()
   b
Run Code Online (Sandbox Code Playgroud)

但如果我这样做

a = print
Run Code Online (Sandbox Code Playgroud)

我得到SyntaxError.为什么这样 ?

Jon*_*nts 20

在Python 2.x中,print是一个语句而不是一个函数.在2.6+中,您可以使用它来使其成为给定模块中的函数from __future__ import print_function.在Python 3.x中,它是一个可以传递的函数.

  • 未来的陈述是明确的.它不会破坏任何代码,因为它只影响在同一模块中需要它的代码 (4认同)

Dae*_*yth 6

在python2中,print是一个声明.如果你这样做from __future__ import print_function,你可以按照你的描述去做.在python3中,你尝试过没有任何导入的东西,因为print是一个函数.

这在PEP3105有所介绍