OUJOOD.COM
Qu'est-ce qu'un module ?
Un module est un fichier Python (extension .py) qui regroupe du code lié à une même fonctionnalité. Son nom correspond au nom du fichier sans l'extension : un fichier tarification.py définit un module nommé tarification.
Dans une application de panier d'achat, on pourrait par exemple avoir un module pour calculer les prix et un autre pour gérer les articles. Chaque module reste indépendant et s'importe là où on en a besoin.
Créer un module
On crée un module en écrivant du code Python dans un fichier .py. Voici un module tarification.py avec deux fonctions de calcul :
# tarification.py
def obtenir_prix_net(prix, taux_taxe, remise=0):
return prix * (1 + taux_taxe) * (1 - remise)
def obtenir_taxe(prix, taux_taxe=0):
return prix * taux_taxe
Ce module expose deux fonctions : une qui calcule le prix net après taxe et remise, une autre qui calcule la taxe seule. Les deux sont disponibles à l'import depuis n'importe quel autre fichier Python.
Importer un module avec import
La forme la plus directe consiste à importer le module entier. On accède ensuite à ses objets avec la notation module.fonction().
# main.py import tarification # On préfixe par le nom du module pour accéder à la fonction prix_net = tarification.obtenir_prix_net(prix=100, taux_taxe=0.01) print(f"Le prix net est : {prix_net}")
Quand Python exécute import tarification, il charge et exécute tout le contenu de tarification.py, puis rend le module accessible sous ce nom dans le fichier courant.
Renommer un module à l'import avec as
Si le nom du module est long ou entre en conflit avec une variable existante, on lui donne un alias avec le mot-clé as.
# Importer tarification sous le nom abrégé "pv"
import tarification as pv
prix_net = pv.obtenir_prix_net(100, 0.01)
print(f"Le prix net est : {prix_net}")
Importer des objets précis avec from … import
Pour utiliser une fonction directement sans préfixer par le nom du module, on l'importe explicitement avec from … import.
# main.py — import sélectif from tarification import obtenir_prix_net # Plus besoin de préfixer par "tarification." prix_net = obtenir_prix_net(100, 0.01) print(f"Le prix net est : {prix_net}")
Pour importer plusieurs objets en une seule ligne : from tarification import obtenir_prix_net, obtenir_taxe.
Importer tout avec from … import * : à éviter
from module import * importe tous les objets publics d'un module d'un coup. Le problème : si deux modules importés définissent un objet du même nom, le second écrase le premier sans avertissement.
# produit.py — définit aussi une fonction obtenir_taxe() def obtenir_taxe(prix): return prix * 0.1 # un seul paramètre, taux fixe à 10%
# main.py — les deux modules ont une fonction obtenir_taxe() from tarification import * from produit import * # écrase obtenir_taxe() de tarification taxe = obtenir_taxe(100) print(taxe) # 10.0 — c'est la version de produit.py qui s'exécute
La version de obtenir_taxe() issue de produit prend le dessus car elle est importée en dernier — sans erreur, sans avertissement. Ce genre de collision introduit des bugs difficiles à tracer. Mieux vaut toujours nommer explicitement les objets importés.
Par carabde | Mis à jour le 15 mai 2026