Tipado de funciones y estructuras de datos en Python
Clase 14 de 25 • Curso de Python: Entornos virtuales, PEP8 y Manejo de Errores
Resumen
Domina el tipado en Python con ejemplos prácticos: aprende a anotar parámetros, definir el retorno con la flecha -> y tipar listas, diccionarios, tuplas y listas anidadas. Verás cómo el editor usa los tipos para autocompletar y alertar errores, cuándo usar any sin abusar y cómo MyPy ayuda a mantener el código limpio a medida que el proyecto crece.
¿Cómo tipar funciones en Python con parámetros y retorno?
Anotar funciones hace explícito qué datos reciben y devuelven. Se usan dos puntos para parámetros y el operador flecha para el retorno. Así, el editor identifica tipos y ofrece autocompletado.
# función tipada: parámetros y retorno
def suma_clara(a: int, b: int) -> int:
return a + b
- Parámetros tipados con ":" y su tipo: int, str, etc.
- Retorno con "->" y el tipo esperado.
- El editor muestra tipos y autocompleta según las anotaciones.
¿Qué ventaja práctica ofrece el tipado en proyectos grandes?
- Entiendes qué enviar a cada función sin abrir su archivo.
- Reduces errores al integrar módulos en muchos archivos.
- Documentas el código de forma viva y verificable.
¿Cómo tipar listas, diccionarios y estructuras anidadas?
Para colecciones, usa genéricos con corchetes. Con list indicas que es una lista; con tipos internos, restringes su contenido. Esto habilita autocompletado correcto y validaciones de incompatibilidad.
# lista de artículos: cada elemento es un diccionario con datos como title
articles: list[dict] = [
{"title": "Primer post"},
{"title": "Segundo post"},
]
# lista de listas restringida a strings
matriz: list[list[str]] = [
["artículos", "otro"],
["más", "items"],
]
- Usa list[...] para tipar listas con su contenido.
- El editor solo sugiere métodos válidos de lista tras el punto.
- Anida tipos: list[list[str]] para listas de listas de strings.
- Tipos básicos disponibles: int, str, list, dict y tuple.
¿Qué ocurre si agregas un tipo incompatible?
- El editor marca el item como incompatible con el tipo declarado.
- Evitas errores al momento de construir o ejecutar.
- Corriges de inmediato antes de que el fallo se propague.
¿Cuándo usar any y cómo apoyarte en mypy?
Cuando migras código sin tipado, any permite avanzar mientras decides los tipos reales. Úsalo con moderación para no perder los beneficios del tipado.
# uso controlado de any
from typing import any
articulos3: list[any] = [
"texto",
123,
{"title": "válido"},
]
- any acepta cualquier tipo de dato.
- Útil al mover un proyecto sin typing a código tipado.
- No sobreabusar: mejor sin tipado que llenarlo de any en todos los archivos.
- Instala la extensión MyPy para detectar errores y empezar a limpiar el código mientras construyes el proyecto.
¿Tienes dudas sobre cómo tipar una estructura específica o una función compleja? Cuéntalo en los comentarios y comparte tu ejemplo para recibir sugerencias.