La valeur None, et l’instruction return

Une fonction est un bloc d’instructions qui a reçu un nom, dont le fonctionnement dépend d’un certain nombre de paramètres (les arguments de la fonction) et qui renvoie un résultat (au moyen de l’instruction return).

Python propose le type NoneType, dont la seule valeur est None : c’est une représentation du “rien”, de l’absence.

La séquence des arguments d’une fonction peut très bien être vide. Si f est une telle fonction, l’instruction y = f () appelle la fonction (provoque son exécution) et place le résultat dans la variable y. On notera que les parenthèses sont indispensables, pour distinguer l’objet f qui est une fonction de l’objet f () qui est le résultat d’un appel à cette fonction.

Dans un tel cas, il est préférable de penser que f prend tout de même un argument, à savoir la valeur None.

La valeur de retour d’une fonction est obtenue par une instruction return valeur dans le corps de la fonction.

Il peut y avoir plusieurs instructions return dans une fonction (évidemment on ne sortira réellement de la fonction qu’en passant par l’une et l’une seulement de ces instructions).

L’oubli de return est une erreur classique. Dans ce cas, la fonction renvoie la valeur None (c’est peut-être le but).

Un affichage obtenu par print dans le corps d’une fonction ne doit pas être considéré comme le résultat de la fonction (c’est un simple effet de bord ). D’ailleurs la fonction print renvoie la valeur None.

L’exemple suivant, extrêmement simple, illustre la nécessité de l’instruction return :

On va maintenant modifier la fonction f :

On opère une nouvelle modification de la fonction f :

Remarque : un return vide (c’est-à-dire suivi d’aucune expression) renvoie la valeur None.

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