¿Cómo funciona import typing con Python?: conoce los detalles

| Última modificación: 3 de febrero de 2025 | Tiempo de Lectura: 3 minutos

Cuando empecé a trabajar con Python, escribir código era relativamente fácil, pero a medida que los proyectos crecían, me enfrenté a un problema común: el código se volvía difícil de mantener. No había manera clara de saber qué tipo de datos esperaban mis funciones, lo que provocaba errores difíciles de detectar. Ahí fue cuando descubrí import typing, una herramienta que cambió por completo la forma en que programaba en Python.

Si alguna vez has trabajado en un proyecto grande, seguro que te ha pasado lo mismo. Sin pistas claras sobre los tipos de datos, el código puede ser un laberinto confuso. Por ello, en este artículo te explicaré cómo import typing te ayuda a escribir código más legible y robusto, y cómo puedes aprovecharlo al máximo.

import typing

¿Qué es import typing en Python?

Supón que estás cocinando y sigues una receta. La receta te dice que necesitas 500 gramos de algo sin especificar si es harina, azúcar o sal. ¿Te arriesgarías a usar cualquier ingrediente? Probablemente no. Ahora, imagina que la receta fuera más clara y dijera 500 gramos de harina. Eso evitaría errores y haría que el proceso fuera más eficiente.

Lo mismo ocurre en la programación: import typing en Python actúa como una receta detallada para el código, indicando exactamente qué tipo de datos espera una función y qué tipo de dato devuelve. Esto no solo ayuda a los desarrolladores a entender mejor el código, sino que también permite a herramientas externas detectar errores antes de que el código se ejecute.

¿Para qué sirve import typing?

El módulo import typing de Python proporciona herramientas para indicar los tipos de datos que se esperan en variables, funciones y estructuras de datos. Aunque Python es un lenguaje dinámico y no obliga a declarar tipos, import typing ayuda a documentar el código y a mejorar su mantenimiento.

Algunas de sus funciones más destacadas incluyen:

  • Anotaciones de tipos en funciones
  • Aliases de tipos para mejorar la legibilidad
  • Definición de tipos personalizados con NewType
  • Uso de genéricos para estructuras de datos flexibles
  • Compatibilidad con herramientas de análisis estático

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Vamos a ver cada una en detalle.

  • Anotaciones de tipos en funciones: Uno de los usos más comunes de import typing es agregar anotaciones de tipo a las funciones. Esto ayuda a documentar el código y facilita el trabajo con herramientas de análisis estático como MyPy.

Veamos un ejemplo de función con anotaciones de tipo:

from typing import List

def suma_numeros(numeros: List[int]) -> int:
return sum(numeros)

En este caso, la función suma_numeros recibe una lista de enteros y devuelve un entero. Si alguien intenta pasar una lista de cadenas, un analizador de código mostrará una advertencia.

  • Creación de alias de tipos: A veces, definir nombres más descriptivos para ciertos tipos de datos puede hacer que el código sea más fácil de entender. Con import typing, puedes usar la palabra clave type para crear alias de tipos:
from typing import Dict

type Configuracion = Dict[str, str]

def cargar_config(config: Configuracion) -> None:
for clave, valor in config.items():
print(f"{clave}: {valor}")

Aquí, Configuracion es un alias para un diccionario que usa cadenas tanto como clave como valor. Esto facilita la lectura del código sin necesidad de analizar toda la estructura del diccionario.

  • Uso de NewType para crear tipos distintos: NewType permite crear tipos distintos que son subtipos de un tipo base, lo que es útil cuando se desea diferenciar valores de un mismo tipo base:
from typing import NewType

UserId = NewType("UserId", int)

def obtener_usuario(user_id: UserId) -> str:
return f"Usuario con ID: {user_id}"

Aunque UserId es internamente un entero, un analizador de código tratará UserId como un tipo separado, lo que ayuda a evitar errores lógicos.

  • Genéricos en import typing: Los genéricos permiten definir estructuras de datos que pueden trabajar con diferentes tipos sin perder información de tipo:
from typing import TypeVar, List

T = TypeVar("T")

def obtener_primer_elemento(lista: List[T]) -> T:
return lista[0]

Aquí, la función obtener_primer_elemento puede trabajar con listas de cualquier tipo sin perder precisión en la inferencia de tipos.

Otras funcionalidades de import typing

Además de los ejemplos anteriores, import typing también permite:

  • Usar Callable para definir funciones como argumentos
  • Anotar tuplas con longitud fija
  • Definir Protocols para trabajar con subtipado estructural
  • Utilizar Annotated para agregar metadatos a los tipos
 import typing

Si quieres llevar tus habilidades en Python al siguiente nivel y aprender a programar con las mejores prácticas del sector tecnológico, en KeepCoding tenemos el Bootcamp de programación inicial perfecto para ti. Aquí no solo aprenderás Python en profundidad, sino que te prepararás para una carrera en tecnología con alta demanda, sueldos competitivos y estabilidad laboral. Da el primer paso hacia tu transformación profesional hoy mismo.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a programar desde cero

Full Stack JR. Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado