__future__ en Python

Hemank Mehtani 10 octubre 2023
  1. Utilice __future__ para print_function en Python
  2. Utilice __future__ para unicode_laterals en Python
  3. Utilice __future__ para la división en Python
  4. Utilice __future__ para absoluta_importación en Python
  5. Utilice __future__ para annotations en Python
  6. Utilice __future__ para ámbitos anidados
  7. Utilice __future__ para los generadores de Python
  8. Utilice __future__ para la declaración with
__future__ en Python

__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()