in

Les modules en python

Cet article fait parti de la série Python pour les débutant ( 5 / 5 )

En programmation, un module est une pièce d’un logiciel qui possède une fonctionnalité spécifique. Par exemple, lors de la création d’un jeu de ping-pong, un module serait responsable de la logique du jeu, et un autre module serait chargé de dessiner le jeu à l’écran. Chaque module est un fichier différent, qui peut être édité séparément.

Très souvent, c’est une personne qui définit une fonction et une autre qui l’utilise. Par exemple, avec la bibliothèque matplotlib, on peut utiliser la fonction plot() pour tracer des courbes sans avoir à écrire nous-mêmes cette fonction. Nous allons donc voir à présent comment définir des fonctions dans un module et faire en sorte qu’un utilisateur puisse appeler ces fonctions dans son programme.

Par exemple, nous allons créer un fichier nommé puissance.py qui va définir 2 fonctions : carre() et cube(). Un tel fichier est appelé un module et il va pouvoir être importé dans un autre fichier, et en particulier dans le fichier qui contient le programme principal.

Il est maintenant possible d’utiliser dans un programme principal les fonctions qui ont été définies dans le module puissance.py. Pour cela, il faut importer les fonctions à partir du module.

Exemple : on importe une seule fonction

Le fichier puissance.py doit être dans le même répertoire que le programme principal (ou bien se trouver dans le “path” de Python).

Exemple : on importe explicitement les deux fonctions

Exemple : on importe toutes les fonctions

L’importation de toutes les fonctions avec * est fortement déconseillée. En effet, elle ne permet pas d’avoir une vision claire des fonctions qui ont été importées. Ceci est donc une source potentielle d’erreurs.

Exemple : on importe le module

Dans ce cas, il faut préciser le nom du module devant la fonction.

Exemple : on importe le module et on lui donne un alias

Exemple : on importe une fonction d’un module et on lui donne un alias

Il est aussi possible de donner un alias à une fonction comme dans l’exemple suivant :

 

Package

Quand on a un grand nombre de modules, il peut être intéressant de les organiser dans des dossiers. Un dossier qui rassemble des modules est appelé un package (paquetage en français). Le nom du package est le même que celui du dossier. Par exemple, on crée un dossier package1 dans lequel on place le fichier module1.py suivant :

 

On peut ensuite utiliser la fonction fonction1() définie dans module1.py, en important package1.module1 comme dans l’exemple qui suit :

Il est aussi possible d’avoir des dossiers imbriqués, c’est-à-dire des dossiers qui contiennent d’autres dossiers.

Complément

Dans la documentation de Python, il est fait une distinction entre script et module. Voici quelques précisions sur cette distinction.

En Python, lorsqu’on crée un fichier qui rassemble des instructions au lieu de les taper une à une dans l’interpréteur, on appelle ce fichier un script et on le sauvegarde avec une extension .py, par exemple essai.py.

Quand on est amené à travailler sur un programme long, il est utile de séparer le programme en plusieurs fichiers. Certaines parties peuvent alors être réutilisées par d’autres programmes.

Il est par exemple possible d’effectuer la définition des fonctions dans un fichier séparé pour ensuite les utiliser dans un script ou dans l’interpréteur. Le fichier qui contient ces définitions a aussi une extension .py, mais on appelle ce fichier un module.

Les modalités pour importer un module sont expliquées plus haut dans cette page.

A l’intérieur d’un module, le nom du module (en tant que chaîne de caractères) peut être obtenu grâce à la variable globale __name__. Par exemple, si on utilise le module puissance.py défini précédemment, on a dans l’interpréteur :

 

Un même fichier .py peut jouer le rôle de script ou de module suivant son utilisation.

Exécution d’un module en tant que script

Quand on utilise un fichier en tant que script, la variable globale __name__ prend pour valeur '__main__'. Ceci permet d’avoir dans le fichier un bloc d’instructions qui sera exécuté uniquement lorsque le fichier est lancé en tant que script.

Par exemple, pour le fichier puissance2.py suivant :

On peut lancer une exécution directe en tant que script et on obtient alors :

Ou bien on peut importer puissance2 en tant que module, par exemple dans le fichier suivant :

Si on exécute ce script, on obtient :

 

Navigation<< Les fonctions en Python

What do you think?

22 points
Upvote Downvote

commentaires

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Chargement & hellip;

Les fonctions en Python