Organiser et structurer son code Python
Objectifs pédagogiques
Qu’est-ce qu’un module ?
Exemple
Fichier maths_utils.py :
def carre(x):
return x * x
Fichier programme.py :
import maths_utils
print(maths_utils.carre(5))
Résultat :
25
Les différents types d’importation
Importer tout le module
Importer une fonction spécifique
Il est possible d’importer uniquement certains éléments d’un module. L'objectif est de ne pas charger tout le module en mémoire si on n’a besoin que d’une partie.
Ici, seule la fonction sqrt est importée depuis le module math.
Renommer un module
De façon optionnelle, on peut renommer un module lors de l’importation avec le mot-clé as. Cela permet d’utiliser un nom plus court ou plus adapté dans le code.
Importer plusieurs éléments
Les modules standards de Python
Python intègre de nombreux modules prêts à l’emploi :
| Module | Utilisation principale | Exemple |
| ---------- | --------------------------- | ----------------------- |
| math | Fonctions mathématiques | math.sqrt(16) |
| random | Nombres aléatoires | random.randint(1, 6) |
| datetime | Dates et heures | datetime.date.today() |
| os | Fichiers, dossiers, système | os.listdir() |
| sys | Paramètres du programme | sys.argv |
Il en existe bien d’autres, adaptés à divers besoins (gestion des fichiers ZIP, communication réseau, traitement JSON, etc.). Vous peux consulter la documentation officielle pour une liste complète.
Exemple d’utilisation - Module datetime
Créer ses propres modules
Tu peux organiser ton code en plusieurs fichiers pour le rendre plus lisible.
Créer un fichier outils.py
def saluer(nom):
print(f"Bonjour {nom} !")
def aire_carre(cote):
return cote ** 2
Créer un fichier principal main.py
import outils
outils.saluer("Alice")
print("Aire du carré :", outils.aire_carre(5))
Résultat :
Bonjour Alice !
Aire du carré : 25
Organisation typique d’un projet Python
Une bonne organisation aide à maintenir ton code sur le long terme.
mon_projet/
│
├── main.py # programme principal
├── outils.py # fonctions utilitaires
├── data/ # fichiers de données
│ └── notes.csv
├── modules/ # sous-modules spécifiques
│ ├── calculs.py
│ └── affichage.py
└── README.md # description du projet
Tu peux importer des fichiers situés dans le même dossier ou dans un sous-dossier.
Exemple d’import dans un sous-dossier
Fichier modules/calculs.py :
def addition(a, b):
return a + b
Fichier main.py :
from modules.calculs import addition
print(addition(3, 7))
Résultat :
10
Le bloc spécial if __name__ == "__main__":
Exemple
# fichier outils.py
def dire_bonjour():
print("Salut !")
if __name__ == "__main__":
print("Ce fichier est exécuté directement.")
dire_bonjour()
Bonnes pratiques de structuration
- Une fonction = une seule responsabilité.
- Un fichier = un ensemble logique de fonctions liées.
- Des noms de fichiers et de dossiers explicites (
maths_utils.py,gestion_notes.py, etc.). - Un point d’entrée unique (
main.py). - Des commentaires clairs et des docstrings pour décrire les fonctions.