VI) Les bonnes pratiques
1) Pourquoi avoir de bonnes pratiques
On code au début pour soi. Mais très vite, on va réutiliser du code écrit par d'autres, on va travailler en équipes. On peut aussi tout simplement avoir besoin de reprendre un code écrit il y a bien longtemps.
Pour toutes ses raisons, il faut avoir en tête de rester quelques points :
- avoir une présentation claire ;
- bien choisir ses noms de variables, de fonctions ;
- documenter son code ;
- y mettre des garde-fous pour faciliter sa conception, sa mise au point.
2) Norme de présentation
Python définit régulièrement des normes de programmation connues sous le nom de PEP (Python Enhancement Proposals).
Voici quelques points à respecter autant que possible.
- Choisir une langue pour les noms de variables et la documentation et s'y tenir. En sciences, c'est souvent l'anglais.
- Pour indenter, choisir de préférences 4 espaces. En bas de son éditeur, on peut souvent le faire.
- Respecter les règles des noms :
- variables et fonctions en minuscules ( cpt, ma_fonction, ...) ;
- constantes en majuscules ( V_MAX, NB_VAL, ...);
- classe commençant par une majuscule (Personne, Tableau, ...)
- Mettre un espace autour des opérateurs ( a = a + 1).
Des sites en ligne permettent de vérifier la présentation. Par exemple, allez voir https://www.pythonchecker.com/.
3) Les commentaires
Afin de rendre votre programme plus clair, il est nécessaire, dès que votre code dépasse une dizaine de lignes, d'introduire des commentaires. Bien sûr, cela peut permettre à une personne qui n'a pas écrit le programme de comprendre ce que vous avez voulu faire, mais cela peut aussi vous permettre, quelques mois après avoir terminé d'écrire votre code, de vous "rafraîchir la mémoire".
En Python, toute ligne commençant par le caractère dièse (#) sera considérée comme un commentaire par le système interpréteur/compilateur.
Voici un exemple de programme commenté :
Attention, dans l'exemple ci-dessus j'ai volontairement alourdi le programme avec des commentaires inutiles vu la simplicité de ce dernier.
4) La documentation d'une fonction
Toujours dans l'idée de rendre vos programmes plus clairs, il est important de proposer une documentation pour vos fonctions. Cette documentation doit donner des informations sur le comportement de votre fonction, plus précisément, votre documentation doit :
- décrire votre fonction
- donner le type des paramètres de votre fonction
- donner le type de la valeur renvoyée par votre fonction
La documentation doit se trouver au tout début de votre fonction, elle commence par 3 guillemets """ et se termine aussi par 3 guillemets. Il est possible d'utiliser plusieurs lignes. Voici un exemple avec la fonction multiplication :
5) Les garde-fous
Dans une fonction, on utilise souvent des paramètres. le concepteur a une idée précise du type envisagé (entier, tableau, ...) mais Python étant un langage non type, rien ne limite que la fonction soit utiliser par erreur dans un autre cadre : par exemple, qu'une chaîne de caractère interviennent au lieu d'un entier.
Certaines fois, ces erreurs sont faciles à détecter mais dans d'autres cas, le comportement est étrange. Cela rend difficile la mise au point.
Voici un petit exemple :
On peut annoter simplement dans le code les types des entrées et des sorties. mais attention, ceci n'est pas un moyen de vérification.
L'inconvénient est qu'elle ne teste pas la nature des paramètres a et b.
Ainsi addition("2","3") va renvoyer "23". Python n'a pas détecté d'erreur.
Un moyen d'y remédier est d'utiliser des assertions :