logo oujood
🔍

Les modules en Python

Un module Python est un fichier .py contenant des fonctions, des variables ou des classes qu'on peut réutiliser dans d'autres fichiers. C'est le mécanisme de base pour organiser et partager du code.

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 :

  📋 Copier le code

# 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().

  📋 Copier le code

# 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.

  📋 Copier le code

# 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.

  📋 Copier le code

# 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.

  📋 Copier le code

# produit.py — définit aussi une fonction obtenir_taxe()
def obtenir_taxe(prix):
    return prix * 0.1  # un seul paramètre, taux fixe à 10%

  📋 Copier le code

# 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