Saltar al contenido

Para qué se usa __future__ en Python y cómo/cuándo usarlo, y cómo funciona

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.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *