Les annotations de type sont des annotations que Python ne fait pas respecter à l'exécution ; un vérificateur statique comme mypy ou pyright les lit et signale les incohérences avant que le code tourne. Le bénéfice est d'attraper des classes entières d'erreurs, comme un None qui circule là où une valeur est requise, plus une complétion et un refactoring bien meilleurs dans l'éditeur. Elles documentent aussi l'intention plus fidèlement qu'une docstring, qui dérive avec le temps.
Pourquoi les recruteurs posent cette question
Le typage est désormais l'attente par défaut sur les bases de code Python sérieuses, donc les recruteurs vérifient à la fois que vous l'utilisez et que vous en connaissez les limites. Les deux choses qu'ils guettent sont que les annotations ne sont pas une vérification à l'exécution, et que vous avez une stratégie d'adoption progressive sur une base existante plutôt qu'une grande réécriture annoncée qui ne sort jamais.
Comment structurer votre réponse
- Dites que les annotations sont statiques, pas vérifiées à l'exécution.
- Listez les bugs concrets qu'un vérificateur attrape.
- Décrivez l'adoption progressive sur une base de code héritée.
- Mentionnez les bénéfices outillage au-delà de la correction.
Exemple de réponse
À l'exécution ce sont pour ainsi dire des commentaires, puisque Python les stocke et passe à autre chose. La valeur vient d'un vérificateur qui les lit. Mypy attrape les bugs ennuyeux qui causent la plupart des incidents, surtout des valeurs optionnelles qui arrivent dans du code qui suppose un objet réel, et la dérive de signature après un refactoring où un appelant a été oublié. Sur une base de code dont j'ai hérité, environ soixante mille lignes sans aucune annotation, nous avons activé mypy avec presque tout désactivé, nous l'avons ajouté à la CI pour que le nombre d'erreurs ne puisse plus augmenter, puis nous avons typé module par module en commençant par les frontières où les données entrent. Le mode strict est venu plus tard, package par package, via des overrides par module dans pyproject. Six mois après, il a attrapé un déréférencement de None dans un chemin de paiement pendant la revue plutôt qu'à deux heures du matin. L'autre bénéfice sous-estimé est le support de l'éditeur, parce qu'avec de vrais types, renommer et aller à la définition fonctionnent vraiment, ce qui change la volonté de l'équipe de refactorer quoi que ce soit.
Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.
Voir comment ça marcheQuestions de relance à prévoir
- Comment typez-vous une fonction qui renvoie des types différents ?
- Quelle est la différence entre Any et object ?
- Où mypy montre-t-il ses limites ?
Autres questions pour Développeur Python
Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.
Prédire mes questions