Desarrollador Python: pregunta de entrevista
¿Cómo usas type hints en Python?
Los type hints documentan y comprueban contratos estáticamente, pero no se aplican automáticamente en runtime; usa unions, protocols y genéricos cuando aclaren APIs y ejecuta un type checker en CI.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
Los type hints son anotaciones que el intérprete ignora y que un verificador como mypy o pyright aplica. Su valor está en los contratos que hacen explícitos: Optional obliga a manejar None, Protocol describe interfaces estructurales sin herencia, TypedDict y dataclasses dan forma a los datos, y los genéricos mantienen precisos los tipos de contenedores. La validación en runtime en las fronteras sigue necesitando una biblioteca como pydantic porque una anotación no detiene un JSON incorrecto. La adopción funciona mejor de forma incremental, endureciendo la estrictez módulo a módulo.
Ejemplo
Una función anotada def find_user(user_id: int) -> User | None hace que pyright marque cada llamador que usa el resultado sin comprobar None. Un Protocol con un único método send permite que el servicio de notificaciones acepte un cliente de email, uno de SMS y un doble de pruebas sin una clase base común.
Errores frecuentes
- Anotar todo como Any para silenciar el verificador y no ganar nada.
- Confiar en las anotaciones de datos parseados de un cuerpo de solicitud sin validarlos.
- Activar el modo estricto en toda la base de código de golpe y ahogarse en miles de errores.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.