Fiche de révision

Guide de style

 

On oublie souvent qu'un programme sera relu et modifié par un humain : son auteur ou un autre développeur. Adopter un style d'écriture standard facilite cette relecture.

IChoisir correctement des noms

Syntaxiquement, les noms de variables, de fonctions, de classes, de méthodes, d'attributs peuvent comporter des lettres, des chiffres, des caractères « _ » et ne doivent pas commencer par un chiffre.

Quel que soit le langage, on choisira un nom d'autant plus évocateur qu'il est utilisé dans une grande portion de code.

La PEP 8 (guide de style Python accessible sur https://www.python.org/dev/peps/peps-0008/) ajoute les conventions suivantes :

Noms de modules courts, en minuscules et de préférence sans « _ ».

Exemple : crypto.

Noms de classes ou de types en CamelCase, c'est-à-dire en minuscules, sans « _ », avec une majuscule au début de chaque mot.

Exemples : class NombrePremier.

Noms de fonctions, de méthodes, d'attributs ou de variables en minuscules, les mots séparés par des « _ ».

Exemple : def decomposition_facteurs_premiers(...).

Les variables utilisées comme constantes sont en majuscules, les mots séparés par des « _ ».

Exemple : TOTAL_MAX = 10.

IIEspaces, indentations, lignes blanches

1 Indentation

Les blocs Python sont délimités par l'indentation. La PEP 8 propose d'indenter les blocs à l'aide de 4 espaces (la plupart des éditeurs Python utilisent ce réglage).

Une ligne ne devrait pas excéder 79 caractères (cette règle est parfois transgressée). Lorsqu'une instruction court sur plusieurs lignes, on facilite la lecture en indentant. Exemple tiré de la PEP 8 :

Tableau de 3 lignes, 2 colonnes ;Corps du tableau de 3 lignes ;Ligne 1 : ; # Aligner avec la parenthèse ouvrante; Ligne 2 : ; foo = nom_de_fonction_long(var_one, var_two,; Ligne 3 : ;                            var_three, var_four);

Enfin, on écrit généralement une seule instruction par ligne.

2 Espaces

Les règles suivantes permettent de bien distribuer les espaces :

pas d'espace avant « : » ;

espace après (mais pas avant) les « , » dans les appels ou définitions de fonction ;

espaces autour de « = » (pour l'affectation) et des opérateurs arithmétiques, sauf s'il y en a beaucoup sur la ligne (dans ce cas, ne pas mettre d'espace autour des plus prioritaires) ;

pas d'espace après « ([{ », ni avant « )]} » ;

pas d'espaces autour de « : » dans les slices.

Exemples :

Tableau de 9 lignes, 2 colonnes ;Corps du tableau de 9 lignes ;Ligne 1 : ; # espaces autour de =; Ligne 2 : ; a = 2; Ligne 3 : ; # espace après , et pas d'espace avant :; Ligne 4 : ; for i in range(1, 43):; Ligne 5 : ;     a = a * 2 # espaces autour de = et *; Ligne 6 : ; lst = [1, 1, 2, 3, 5, 8] # espaces après ,; Ligne 7 : ; print(lst[2:6]) # pas d'espace autour de :; Ligne 8 : ; # espaces après : et , mais pas avant; Ligne 9 : ; dico = {

3 Lignes blanches

On laisse deux lignes vides entre les différentes fonctions ou classes à l'intérieur d'un module.

Au sein d'une classe, les méthodes sont séparées par une seule ligne blanche.

IIIOutils de validation

Des outils sont souvent intégrés dans les environnements de développement, mais sont aussi disponibles séparément :

pep8 et flake8 permettent de vérifier la conformité avec la PEP 8 (ainsi que d'autres choses).

autopep8 et black peuvent reformater automatiquement le code en suivant ces règles.

Exemple d'infractions relevées par flake8 dans un programme fib.py :

Tableau de 5 lignes, 2 colonnes ;Corps du tableau de 5 lignes ;Ligne 1 : ; fib.py:1:11: E203 whitespace before ':'; Ligne 2 : ; fib.py:2:8: E225 missing whitespace around operator; Ligne 3 : ; fib.py:2:11: E231 missing whitespace after ','; Ligne 4 : ; fib.py:6:1: E305 expected 2 blank lines after class or function definition, found 0; Ligne 5 : ; fib.py:6:6: E211 whitespace before '(';

Pour lire la suite

Je m'abonne

Et j'accède à l'ensemble
des contenus du site

Commencez vos révisions !

  • Toutes les matières du programme
  • Les dernières annales corrigées et expliquées
  • Des fiches de cours et cours vidéo / audio
  • Des conseils et méthodes pour réussir ses examens
  • Pas de publicité

J'accède gratuitement à
3 contenus au choix

S'inscrire

J'accède dès 7,49€ / mois
à tous les contenus

S'abonner