Resumen

Aprende a usar anotaciones de tipo en Python para escribir código más claro y confiable. Verás cómo funcionan los tipos en un lenguaje de tipado dinámico, por qué los type hints no fuerzan el valor, cómo usar el operador dos puntos y el operador pipeline para None, y cómo detectar incompatibilidades con la extensión MyPy en el editor.

¿Qué es el tipado dinámico y por qué usar type hints en Python?

Python es dinámicamente tipado: cada variable recibe su tipo según el valor asignado. La metáfora de los frascos con azúcar y sal ayuda: puedes saber el contenido al abrirlos, pero con etiquetas es más claro. Los type hints son esas “etiquetas”. Indican el tipo esperado, aunque Python no obliga a cumplirlo en tiempo de ejecución. Aun así, aportan documentación, legibilidad y mejor soporte del editor.

  • Tipado dinámico: el tipo cambia según el valor asignado.
  • Type hints: anotaciones que orientan al desarrollador y a herramientas de chequeo.
  • No imponen el tipo en ejecución: ayudan a evitar errores antes de correr el programa.

¿Cómo se agregó el typing a Python 3.5?

Según se cuenta, el módulo typing llegó en la versión 3.5. Guido van Rossum tenía dudas por la complejidad añadida, pero una persona insistió para que se incorporara. Desde entonces, puedes anotar tipos sin cambiar la naturaleza dinámica del lenguaje.

¿Cómo anotar variables y revisar su tipo en código?

Primero, observa cómo Python asigna tipos automáticamente y cómo los type hints documentan la intención. La función type revela el tipo actual.

# Variable sin tipo explícito
variable = 42
print("variable:", variable, "tipo:", type(variable))

# Cambio de entero a texto: Python lo permite
variable = "Texto de prueba"
print("variable:", variable, "tipo:", type(variable))
  • La variable pasa de entero a string sin error: tipado dinámico.
  • Usar type() te muestra el tipo real en ejecución.

Ahora, anota el tipo con el operador dos puntos. Es la “etiqueta” del frasco:

# Anotación de tipo (type hint)
variable: int = 44
print("variable:", variable, "tipo:", type(variable))

# Python no fuerza el tipo en tiempo de ejecución
variable = "texto"  # Un validador de tipos marcará incompatibilidad.
  • variable: int = 44: indica que debería ser entero.
  • Python permite reasignar un string, pero un chequeador lo reportará.

Para permitir que una variable esté vacía, usa el operador pipeline | con None:

# Entero que también puede estar vacío
user_id: int | None = None
  • int | None comunica: puede ser entero o estar vacío.
  • Útil cuando aún no existe en la base de datos.

Habilidades y conceptos que practicas: - Usar el operador dos puntos para anotar tipos en variables. - Verificar el tipo en ejecución con la función type. - Entender que los type hints no imponen tipos en tiempo de ejecución. - Permitir valores vacíos con int | None usando el operador pipeline.

¿Qué errores evitar con nombres de archivo y módulos?

Evita nombrar archivos como types o typing: ya existen módulos con esos nombres y verás un warning. Usa nombres como type_hints.py para prevenir conflictos.

¿Cómo validar tipos automáticamente con MyPy en el editor?

Instala la extensión MyPy desde Extensiones. Tras activarla, aparecerán líneas con errores cuando una asignación no coincida con la anotación de tipo. Al pasar el mouse, verás mensajes como: tipo incompatible, la expresión era STR y luego se envía un entero.

Pasos prácticos: - Instalar la extensión MyPy en el editor. - Escribir anotaciones: variable: int = 44. - Reasignar un valor incompatible para ver el reporte. - Corregir según el mensaje de tipo incompatible.

Beneficios inmediatos: - Detectas errores mientras escribes, no al ejecutar. - Mantienes consistencia entre lo esperado y lo asignado. - Mejoras la legibilidad del código para todo el equipo.

¿Quieres compartir cómo anotas tus variables o qué casos te dieron más claridad? Deja un comentario y hablemos de buenas prácticas con type hints en Python.