Documentation des fonctions

Il est recommandé de placer des commentaires dans les fonctions qu’on écrit, et d’éviter un code trop dense.

Prenons un exemple. La fonction suivante trie une liste par la méthode d’insertion :

Le code précédent est trop dense, et non commenté, ce qui ne favorise pas sa relecture. Il est recommandé d’utiliser plutôt le style suivant (même si, pour ce qui est des commentaires, on force peut-être ici un peu le trait) :

Voici un exemple d’utilisation de cette fonction tri_insertion (on importe la fonction sample du module random, pour créer ici une liste d’entiers différents d’un intervalle donné).

La fonction help de Python permet d’afficher une aide succinte sur les fonctions intégrées.

Voici par exemple l’aide associée à la fonction divmod :

Incorporer des commentaires à une fonction, c’est très bien si on souhaite relire le code de celle-ci. Mais si on est seulement intéressé par l’utilisation de cette fonction, il est intéressant de pouvoir disposer d’une aide sur les arguments qu’elle attend, et sur la nature du résultat qu’elle renvoie.

La solution est d’utiliser une “chaîne de documentation” (docstring en anglais) placée juste après la ligne de définition, et délimitée par une paire de triples guillemets (ou de triples apostrophes). L’utilisation de ces délimiteurs triples permet de faire courir la chaîne de documentation sur plusieurs lignes.

À titre d’exemple, nous allons modifier la fonction tri_insertion en lui ajoutant un nouveau paramètre formel sous la forme d’une fonction pour personnaliser la façon dont la liste est triée.

Une fois validée cette nouvelle définition, la docstring est affichée en tapant help(tri_insertion) :

Voici comment trier une liste d’entiers relatifs selon leurs valeurs absolues, ou par ordre décroissant. Cette nouvelle définition de tri_insertion et l’exemple du tri décroissant illustrent une utilisation commode des fonctions lambda :

Retour à l’accueil du cours Python/Numpy

Sommaire du chapitre 4

  1. La valeur None, et l’instruction return
  2. L’espace de noms global
  3. L’espace de noms local d’une fonction
  4. Remarques sur les espaces de noms emboîtés
  5. Paramètres positionnels ou nommés, valeurs par défaut
  6. Rattrapage des exceptions
  7. Fonctions lambda
  8. Documentation des fonctions