Pregunta de entrevista para Desarrollador Python

¿Qué te aportan en realidad las anotaciones de tipo y un comprobador como mypy?

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

Las anotaciones de tipo son marcas que Python no comprueba en tiempo de ejecución; un comprobador estático como mypy o pyright las lee y reporta incoherencias antes de que el código se ejecute. La recompensa es cazar clases enteras de errores, como un None circulando donde se requiere un valor, además de un autocompletado y una refactorización mucho mejores. También documentan la intención de forma más fiable que un docstring, que se desactualiza.

Por qué lo preguntan los entrevistadores

El tipado es hoy lo que se espera por defecto en bases de código Python serias, así que los entrevistadores comprueban tanto que lo usas como que entiendes sus límites. Las dos cosas que esperan oír son que las anotaciones no se comprueban en ejecución, y que tienes una estrategia para adoptar tipos en una base de código existente de forma gradual, en vez de anunciar una gran reescritura que nunca sale.

Cómo estructurar tu respuesta

  • Di que las anotaciones son estáticas, no se comprueban en ejecución.
  • Enumera los bugs concretos que caza un comprobador.
  • Describe la adopción gradual en una base de código antigua.
  • Menciona los beneficios de tooling más allá de la corrección.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

En tiempo de ejecución son básicamente comentarios, porque Python las guarda y sigue adelante. El valor viene de que un comprobador las lea. Mypy caza los bugs aburridos que causan la mayoría de las incidencias, sobre todo valores opcionales que llegan a código que asume un objeto real, y firmas que se desalinean tras una refactorización en la que se escapó una llamada. En una base de código que heredé, con unas sesenta mil líneas y sin anotaciones, activamos mypy con casi todo desactivado, lo metimos en CI para que el número de errores no pudiera crecer, y luego fuimos tipando módulo a módulo empezando por las fronteras por donde entran los datos. El modo estricto llegó después, paquete a paquete, con overrides por módulo en pyproject. A los seis meses cazó una desreferencia de None en una ruta de pagos durante una revisión y no a las dos de la mañana. El otro beneficio que la gente infravalora es el soporte del editor, porque con tipos de verdad, renombrar e ir a la definición funcionan, y eso cambia lo dispuesto que está el equipo a refactorizar cualquier cosa.

¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.

Mira cómo funciona

Preguntas de seguimiento que puedes esperar

  • ¿Cómo tipas una función que devuelve tipos distintos?
  • ¿Cuál es la diferencia entre Any y object?
  • ¿Dónde se queda corto mypy?

Más preguntas para Desarrollador Python

Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.

Predecir mis preguntas

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot