Évaluer la qualité d'un code
Reading time5 minEn bref
Résumé de l’article
Dans l’article sur les bonnes pratiques de programmation, nous vous avons présenté des éléments à garder en tête lors de l’écriture de code.
Dans cet article, nous vous présentons deux outils qui peuvent vous aider à évaluer la qualité d’un code déjà écrit.
De plus, nous introduisons le “type hinting” (annotations de type), qui peut vous aider à être plus précis sur le type de variable attendu à différents endroits dans votre code.
C’est une fonctionnalité optionnelle en Python, qui peut être exploitée par certains IDE pour prévenir les erreurs.
Points clés
-
Python est un langage à typage dynamique.
-
Le type hinting, surtout pour les fonctions, aide à améliorer la lisibilité du code.
-
Certains outils comme
mypypeuvent exploiter les annotations de type pour éviter des bugs potentiels. -
L’outil
pylintpeut attribuer une note à votre code.
Contenu de l’article
1 — Type hinting
Python est un langage à typage dynamique, ce qui signifie qu’il déduit le type d’une variable à partir de la valeur qui lui est assignée.
Bien que cela rende la programmation plus rapide, cela réduit la lisibilité du code.
Le Type Hinting a été introduit dans Python 3.5 pour permettre au programmeur de spécifier le type de la variable manipulée.
Ces indications purement informatives rendent le code plus facile à lire et à étendre.
Les types dits basiques sont automatiquement gérés, mais les types composés doivent être explicitement inclus.
Voici un exemple d’utilisation des annotations de type :
Des bibliothèques additionnelles telles que typing_extensions ou numbers fournissent des types supplémentaires pour le type hinting.
Vous les rencontrerez fréquemment durant ce cours.
Information
Contrairement à Python, chaque type doit être explicite en Java, donc le type hinting n’est pas nécessaire.
Certains outils peuvent être utilisés pour exploiter les annotations de type et améliorer les performances de débogage.
Par exemple, la bibliothèque mypy utilise les annotations de type pour détecter les erreurs de typage, comme nous le verrons ensuite.
Information
En pratique, l’usage courant du type hinting est de l’utiliser pour les arguments de fonction et les types de retour (pour améliorer la documentation), mais pas pour toutes les variables que vous pouvez définir (bien que vous puissiez le faire).
Par exemple, vous devriez faire :
Mais pas :
Python est un langage à typage dynamique, qui n’impose pas de typage explicite, contrairement à Java.
Ainsi, si le typage est extrêmement important dans votre cas d’application, vous pourriez préférer passer à un langage plus approprié plutôt que d’essayer de bricoler Python.
Sinon, il est préférable de suivre les pratiques de codage choisies pour le langage.
2 — Vérification de type avec MyPy
Les erreurs de type sont découvertes à l’exécution et sont parfois cachées dans des blocs conditionnels imbriqués.
mypy est un outil utile pour vérifier la conformité des types des arguments passés à votre fonction.
mypy exploite les annotations de type dans votre code pour vérifier la validité des valeurs passées en arguments des fonctions.
Considérons le code suivant, dans un fichier nommé distances.py.
Lancer la commande suivante :
Conduit aux erreurs suivantes indiquant clairement des problèmes de type :
3 — Évaluez votre code avec Pylint
Des outils tels que Pylint peuvent vous aider à évaluer si votre code respecte la norme Python Enhancement Proposals (PEP) 8.
Par exemple, vous pouvez lancer la commande suivante, qui donnera une note à votre code.
À titre d’exemple, considérez les codes Python suivants que nous avons déjà rencontrés dans le cours sur les bonnes pratiques de programmation :
Lancer pylint sur ces codes nous donne les sorties suivantes :
Pour avoir un retour direct dans votre IDE (VSCode) concernant la conformité de votre code par rapport à la PEP8, vous pouvez installer l’extension pylint pour VSCode.
Pour aller plus loin
On dirait que cette section est vide !
Y a-t-il quelque chose que vous auriez aimé voir ici ?
Faites-le nous savoir sur le serveur Discord !
Peut-être pouvons-nous l’ajouter rapidement.
Sinon, cela nous aidera à améliorer le cours pour l’année prochaine !
Pour aller encore plus loin
-
La norme complète Python PEP8
-
Techniques mathématiques pour aider à l’implémentation d’un programme.
-
Outils mathématiques pour vérifier la correction d’un programme.