__future__ en Python
-
Utilice
__future__
paraprint_function
en Python -
Utilice
__future__
paraunicode_laterals
en Python -
Utilice
__future__
para la división en Python -
Utilice
__future__
para absoluta_importación en Python -
Utilice
__future__
paraannotations
en Python -
Utilice
__future__
para ámbitos anidados -
Utilice
__future__
para los generadores de Python -
Utilice
__future__
para la declaraciónwith
__future__
se introdujo en Python 2.1, y sus declaraciones cambian la forma en que Python interpreta el código. Le dice al intérprete que compile algunas declaraciones como aquellas declaraciones que estarán disponibles en futuras versiones de Python, es decir, Python usa from __future__ import feature
para respaldar las características de versiones superiores de Python al intérprete actual.
Siempre que vea from __future__ import
, significa que una característica de la última versión o de una próxima versión de Python se ha transferido a una versión anterior.
Este tutorial discutirá las características ya habilitadas en Python 3 en versiones anteriores de Python usando __future__
.
Utilice __future__
para print_function
en Python
El uso de la palabra clave print como una función en lugar de una declaración le aporta mucha flexibilidad, lo que ayuda a ampliar la capacidad de la palabra clave print
. La función principal de from __future__ import print_function
es traer la función print
de Python 3 a Python 2.
Por ejemplo,
from __future__ import print_function
for x in range(0, 10):
print(x, sep=" ", end="")
Producción :
0123456789
Tenga en cuenta que print
aquí se usa como una función, que se usó anteriormente como una declaración en Python 2.x
Utilice __future__
para unicode_laterals
en Python
Esto le permite cambiar el tipo de cadenas literales.
Los literales de cadena son ‘str’ por defecto en Python 2, pero si usamos from __future__ import unicode_literals
, el tipo de literal de cadena cambia a Unicode
.
Por ejemplo,
type("h")
Producción :
<type 'str'>
Pero con from __future__ import unicode_literals
obtenemos el siguiente resultado.
from __future__ import unicode_literals
type("h")
Producción :
<type 'unicode'>
Tenga en cuenta que al usar from __future__ import
, no tenemos que anteponer cada cadena con u
para tratarla como un Unicode
.
Utilice __future__
para la división en Python
En las versiones de Python 2.x, se usa la división clásica.
print(8 / 7)
Producción
0
Una simple división de 8 por 7 devuelve 0 en Python 2.x.
El uso de from __future__ import division
permite que un programa Python 2 use __truediv__()
.
Por ejemplo,
from __future__ import division
print(8 / 7)
Producción :
1.1428571428571428
Utilice __future__
para absoluta_importación en Python
En Python 2, solo podría tener importaciones relativas implícitas, mientras que en Python 3, puede tener importaciones explícitas o importaciones absolutas. __future__ import absolute_import
permite que el paréntesis tenga varias declaraciones de importación encerradas entre corchetes.
Por ejemplo,
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text, LEFT, DISABLED, NORMAL, END
Tenga en cuenta que sin la función __future__ import absolute_import
, no podrá incluir varias declaraciones import
en una línea de código.
Utilice __future__
para annotations
en Python
Las anotaciones son expresiones de Python asociadas con diferentes partes de una función.
Aquí, el uso de from __future__ import annotations
cambia la forma en que se evalúan las anotaciones en un módulo de Python. Pospone la evaluación de anotaciones y trata mágicamente todas las anotaciones como anotaciones diferenciadas.
Por ejemplo,
from __future__ import annotations
class C:
@classmethod
def make(cls) -> C:
return cls
Tenga en cuenta que el código anterior solo funcionaría si __future__ import
está escrito en la parte superior del código, ya que cambia la forma en que Python interpreta el código, es decir, trata las anotaciones como cadenas individuales.
Utilice __future__
para ámbitos anidados
Con la adición de __future__ import nested_scopes
, se han introducido ámbitos anidados estáticamente en Python. Permite que se ejecuten los siguientes tipos de código sin devolver un error.
def h():
...
def m(value):
...
return m(value - 1) + 1
...
Tenga en cuenta que el código anterior habría generado un NameError antes de Python 2.1.
Utilice __future__
para los generadores de Python
Un generador es una función en Python definida como una función regular. Aún así, lo hace con la palabra clave “rendimiento” en lugar de la devolución siempre que necesita generar un valor específico.
Aquí, con el uso de from __future__ import generators
, se introdujeron funciones de generador para guardar estados entre llamadas de función sucesivas.
Por ejemplo,
def gen():
c, d = 0, 1
while 1:
yield d
c, d = d, c + d
Utilice __future__
para la declaración with
Esto elimina el uso de las declaraciones try...except
al agregar la declaración with
como palabra clave en Python. Se utiliza principalmente al realizar E / S de archivos, como se muestra en el siguiente ejemplo.
with open("workfile", "h") as a:
read_data = a.read()