Esta es la respuesta más válida que encomtrarás brindar, sin embargo obsérvala pausadamente y analiza si es compatible a tu trabajo.
Solución:
Con __future__
la inclusión del módulo, puede acostumbrarse lentamente a cambios incompatibles oa cambios que introducen nuevas palabras clave.
Por ejemplo, para usar administradores de contexto, tenía que hacer from __future__ import with_statement
en 2.5, como el with
La palabra clave era nueva y ya no debería usarse como nombres de variables. Para usar with
como palabra clave de Python en Python 2.5 o anterior, deberá usar la importación desde arriba.
Otro ejemplo es
from __future__ import division
print 8/7 # prints 1.1428571428571428
print 8//7 # prints 1
Sin el __future__
cosas, ambos print
las declaraciones se imprimirían 1
.
La diferencia interna es que sin esa importación, /
se asigna a la __div__()
método, mientras que con él, __truediv__()
se usa (En todo caso, //
llamadas __floordiv__()
.)
A propósito print
: print
se convierte en una función en 3.x, perdiendo su propiedad especial como palabra clave. Así que es al revés.
>>> print
>>> from __future__ import print_function
>>> print
>>>
Cuando tu lo hagas
from __future__ import whatever
En realidad no estás usando un import
declaración, sino una declaración futura. Está leyendo los documentos incorrectos, ya que en realidad no está importando ese módulo.
Las declaraciones futuras son especiales: cambian la forma en que se analiza su módulo de Python, por lo que deber estar en la parte superior del archivo. Le dan un significado nuevo, o diferente, a las palabras o símbolos en su archivo. De los documentos:
Una declaración futura es una directiva para el compilador de que un módulo en particular debe compilarse utilizando la sintaxis o la semántica que estará disponible en una versión futura específica de Python. La futura declaración tiene como objetivo facilitar la migración a futuras versiones de Python que introduzcan cambios incompatibles en el lenguaje. Permite el uso de las nuevas funciones por módulo antes del lanzamiento en el que la función se convierte en estándar.
Si realmente desea importar el __future__
módulo, solo hazlo
import __future__
y luego acceda a él como de costumbre.
__future__
es un pseudomódulo que los programadores pueden usar para habilitar nuevas funciones de lenguaje que no son compatibles con el intérprete actual. Por ejemplo, la expresión 11/4
actualmente se evalúa a 2
. Si el módulo en el que se ejecuta tuviera habilitado true división ejecutando:
from __future__ import division
la expresion 11/4
evaluaría a 2.75
. Al importar el __future__
y evaluando sus variables, puede ver cuándo se agregó por primera vez una nueva función al idioma y cuándo se convertirá en la predeterminada:
>>> import __future__
>>> __future__.division
_Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
Te mostramos las reseñas y valoraciones de los usuarios
Finalizando este artículo puedes encontrar las aclaraciones de otros administradores, tú asimismo tienes la libertad de insertar el tuyo si lo deseas.