En primer lugar, from __future__ import print_function
debe ser la primera línea de código en su script (aparte de algunas excepciones mencionadas a continuación). En segundo lugar, como han dicho otras respuestas, ahora debe usarlo print
como una función. De eso se trata from __future__ import print_function
; para traer la print
función de Python 3 a Python 2.6+.
from __future__ import print_function
import sys, os, time
for x in range(0,10):
print(x, sep=' ', end='') # No need for sep here, but okay :)
time.sleep(1)
__future__
las declaraciones deben estar cerca de la parte superior del archivo porque cambian cosas fundamentales sobre el lenguaje, por lo que el compilador debe saberlas desde el principio. De la documentación :
Una declaración futura se reconoce y trata especialmente en el momento de la compilación: los cambios en la semántica de las construcciones centrales a menudo se implementan mediante la generación de código diferente. Incluso puede darse el caso de que una nueva característica introduzca una nueva sintaxis incompatible (como una nueva palabra reservada), en cuyo caso el compilador puede necesitar analizar el módulo de manera diferente. Tales decisiones no pueden ser postergadas hasta el tiempo de ejecución.
La documentación también menciona que las únicas cosas que pueden preceder a una __future__
declaración son la cadena de documentación del módulo, comentarios, líneas en blanco y otras declaraciones futuras.