¿Por qué no puedo asignar la impresión de python a una variable?

Estoy aprendiendo a progtwigr y estoy usando Python para comenzar. Allí, veo que puedo hacer algo como esto:

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

Sin embargo, si bash hacer lo mismo con la print falla:

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

¿Por qué la print es diferente a una función que creo? Esto está utilizando Python v2.7.5.

print es una statement , no una función. Esto se cambió en Python 3 en parte para permitirte hacer cosas como esta. En Python 2.7 puede imprimir como una función from __future__ import print_function en la parte superior de su archivo, y de hecho podrá hacer la test = print .

Tenga en cuenta que con la impresión como una función, ya no puede print x sino que debe print(x) (es decir, se requieren paréntesis).

Además de lo que dijo BrenBarn sobre la función de impresión, tenga en cuenta que la print no devolverá un valor. Por supuesto, una statement nunca devolverá un valor (por lo que ve ese error), pero incluso como una función no obtendrá el valor que la función imprime como el valor de retorno.

En su lugar, print directamente escribe algo en la salida , generalmente la consola. Si desea almacenar el valor dentro de una variable, simplemente asigne lo que quiera imprimir a esa variable.