Aprender a tipear funciones y listas en Python te permite escribir código más claro y detectar errores antes de ejecutarlo. Si ya dominas los types básicos en variables, el siguiente paso es aplicarlos en funciones, parámetros y estructuras como listas o diccionarios. Esto es clave para cualquier desarrollador que trabaje en proyectos grandes con muchos archivos.
Cómo agrego tipos a los parámetros de una función
Cuando defines una función, puedes tipear cada parámetro usando dos puntos seguidos del tipo de dato. En el ejemplo de una función suma_clara que recibe un número A y un número B, el tipado queda así:
python
def suma_clara(a: int, b: int) -> int:
return a + b
La parte interesante viene al pasar el cursor sobre cada variable: el editor te muestra automáticamente que son de tipo entero, porque ya quedaron tipadas desde la firma de la función.
Para tipear lo que retorna una función usas el operador flecha, que se forma con un guion y un signo mayor que (->). Después de esa flecha expresas el valor de salida, en este caso un int [00:41].
¿Para qué sirve tipear el retorno de una función? Te permite saber qué tipo de dato devuelve sin abrir el archivo donde está definida. En aplicaciones grandes con muchos archivos, esto ahorra tiempo y evita errores al llamar funciones.
Por qué importa tipear en proyectos grandes
En un solo archivo puedes leer todo de un vistazo. Pero cuando tu aplicación crece y hay decenas de archivos, el tipado te dice qué datos debes enviar a cada función sin necesidad de ir a abrirla. El editor se convierte en tu guía.
Cómo tipear una lista en Python
Para tipear una lista usas List. Aquí viene un detalle útil: en versiones anteriores de Python debías importar List con mayúscula desde typing, pero en versiones más actualizadas ya no es necesario ese import [02:11].
Una vez tipeada una variable como lista, al escribir el punto después del nombre, el editor te autocompleta solo con funciones y métodos válidos para listas. Ese es el beneficio inmediato del tipado.
Pero ¿cómo defines de qué tipo son los elementos de la lista? Usando corchetes (llaves cuadradas) para especificar el tipo interno:
python
articles: list[dict]
Si intentas agregar un string a una lista de diccionarios, el editor te marca de inmediato que ese valor no es compatible. Así detectas el error en el momento, no después.
¿Cómo tipeo una lista de listas en Python? Anidas los corchetes: list[list[str]] indica una lista que contiene listas de strings. Si metes un entero, el editor te avisa que el ítem es incompatible porque requiere tipo str.
Qué tipos básicos puedo usar para tipear
Todos los tipos que ya conoces funcionan de la misma forma, tanto en parámetros como en retornos. Los principales son:
- Enteros (
int).
- Cadenas de texto (
str).
- Listas (
list).
- Diccionarios (
dict).
- Tuplas (
tuple).
Con estos cinco tipos básicos y la posibilidad de anidarlos con corchetes, puedes describir prácticamente cualquier estructura de datos de tu proyecto [03:47].
Cuándo debo usar el tipo any
Además de los tipos básicos, existe uno especial llamado any, que te permite validar cualquier tipo de dato. Para usarlo necesitas importarlo desde typing:
python
from typing import Any
Recuerda que los imports siempre deben ir en la parte superior del archivo, aunque en una demostración puedan aparecer en otro lugar por motivos didácticos.
¿Cuándo conviene usar any en Python? Es útil cuando migras un proyecto sin tipado a uno con tipado y todavía no sabes qué tipo asignar. No abuses de él: es preferible no tener tipado a llenar todos los archivos de any.
El punto clave aquí es el equilibrio. El any resuelve la transición, pero si lo pones en todas partes pierdes el valor real del tipado, que es la detección temprana de errores.
Cómo verifico los tipos con MyPy
Ya sabes agregar tipos a variables, a parámetros, a retornos y a listas anidadas. El reto ahora es aplicarlo a todos los archivos que has creado hasta ahora y agregar los tipos necesarios para que el proyecto funcione correctamente.
Para ver todos esos errores de tipado, instala la extensión MyPy [04:55]. Con ella podrás revisar los archivos previos, limpiarlos y empezar a construir el proyecto sobre una base sólida y bien tipada.
¿Ya intentaste tipear tus propias funciones? Cuéntame en los comentarios qué tipo de dato te costó más definir.