Bonnes pratiques

Objectifs

  • Connaître les conventions de styles du Python ;

  • Connaître la PEP 8.

Mise en situation

Comme tous les langages, Python offre beaucoup de libertés aux développeurs. Cependant, ces derniers doivent être en mesure de travailler ensemble sur des projets communs. Les libertés offertes par le Python viennent donc ajouter quelques responsabilités aux développeurs.

La PEP 8

Les PEP - Python Enhancement Proposals (python.org/dev/peps) - sont des propositions pour améliorer le langage. Elles permettent d'avoir un système de suivi des propositions pour savoir ce qui a été fait et ce qu'il y a à faire dans le développement du langage lui-même.

Fondamental

La PEP 8 est une des plus anciennes propositions (2001) et elle introduit le style officiel à respecter lorsque l'on code en Python. En voici quelques éléments de base :

  • Indentation : un niveau d'indentation correspond à 4 espaces.

  • Longueur d'une ligne : ne pas dépasser 79 caractères.

  • Conventions de nommage : les noms de fonctions et de variables doivent être en snake_case, c'est à dire en minuscule, avec les mots séparés par underscore, comme une_variable. Les constantes sont en SNAKE_CASE majuscules.

  • Espaces : on place des espaces autour des opérateurs et des arguments de fonction.

Exemple

1
# INCORRECT
2
def SumBis(a,b):
3
  return a+b
4
someVariable=42
5
print(SumBis(someVariable,20))
6
7
# CORRECT
8
def sum_bis(a, b):
9
    return a + b
10
some_variable = 42
11
print(sum_bis(some_variable, 20))

Les commentaires

Les block comments :

  • commencent par « # »,

  • sont suivis d'un espace et doivent être composés de phrases entières,

  • peuvent être chaînés sur plusieurs lignes pour une explication plus longue.

Les inline comments :

  • commencent aussi par « # » mais se trouvent directement sur la ligne de l'instruction commentée,

  • sont séparés par au moins 2 espaces de la fin de l'instruction,

  • doivent être utilisés pour donner une information non triviale (un effet de bord par exemple).

Les docstrings :

  • permettent de documenter le code sur plusieurs lignes en plaçant les commentaires entre « """ »,

  • sont placés directement sous les signatures de fonctions, méthodes et classes pour expliquer à quoi ces derniers servent.

Exemple

1
def isCSV(filename):
2
    """
3
    Ceci est un docstring pour expliquer la fonction autour.
4
5
    Cette fonction prend en entrée un nom de fichier.
6
    Et retourne un booléen indiquant si le fichier est un csv.
7
    """
8
    if filename[-3:] == "csv":  # Inline comment
9
        return True
10
    return False
11
12
# Block comment
13
print(isCSV("employees.csv"))

À retenir

  • Python offre de nombreuses libertés.

  • L'utilisation de la convention PEP 8 permet de rendre le code plus facile à lire et comprendre pour tout le monde.