
Modules et packages : organiser son code
Apprenez à organiser votre code Python en modules et packages. Découvrez comment importer des modules (import, from ... import ...), créer vos propres modules et packages, et utiliser les modules de la bibliothèque standard.
Importer des modules : accédez à des fonctionnalités supplémentaires
Python est livré avec une vaste bibliothèque standard qui offre une multitude de fonctionnalités prêtes à l'emploi. Pour accéder à ces fonctionnalités, vous devez importer des modules. Un module est simplement un fichier Python contenant des fonctions, des classes et des variables.
Vous pouvez importer un module en utilisant le mot-clé `import`, suivi du nom du module. Par exemple : `import math`. Cela vous donne accès à toutes les fonctions et variables définies dans le module `math`, en utilisant la notation `math.fonction()` (par exemple, `math.sqrt(2)` pour calculer la racine carrée de 2).
Vous pouvez également importer des éléments spécifiques d'un module en utilisant `from ... import ...`. Par exemple : `from math import sqrt`. Cela vous permet d'utiliser `sqrt` directement, sans avoir à préfixer le nom par `math`. Vous pouvez importer plusieurs éléments en les séparant par des virgules : `from math import sqrt, pi, sin`.
Vous pouvez également utiliser `from ... import *` pour importer tous les éléments d'un module. Cependant, cette pratique est généralement déconseillée, car elle peut polluer votre espace de noms et rendre votre code moins lisible.
Enfin, vous pouvez donner un alias à un module importé en utilisant `import ... as ...`. Par exemple : `import math as m`. Cela vous permet d'utiliser `m` au lieu de `math` pour accéder aux éléments du module.
Nous verrons comment utiliser ces différentes formes d'importation, et quelles sont les bonnes pratiques à suivre.
Créer ses propres modules : réutilisez votre code
Vous pouvez créer vos propres modules en créant simplement un fichier Python (avec l'extension `.py`) contenant des fonctions, des classes et des variables. Vous pouvez ensuite importer ce module dans d'autres fichiers Python, et utiliser les éléments qu'il contient.
Créer vos propres modules vous permet de réutiliser votre code dans différents projets, d'organiser votre code en unités logiques, et de faciliter la maintenance et l'évolution de votre code.
Par exemple, vous pourriez créer un module `mes_fonctions.py` contenant des fonctions utilitaires que vous utilisez fréquemment, et l'importer dans vos autres projets avec `import mes_fonctions`.
Nous verrons comment créer des modules simples, comment les importer, et comment structurer un projet Python en plusieurs modules.
Créer et organiser des packages : structurez vos projets complexes
Lorsque vos projets deviennent plus complexes, vous pouvez organiser vos modules en packages. Un package est simplement un répertoire contenant des modules, ainsi qu'un fichier spécial nommé `__init__.py`.
Le fichier `__init__.py` peut être vide, ou il peut contenir du code d'initialisation pour le package. Il indique à Python que le répertoire doit être traité comme un package.
Vous pouvez organiser vos modules en sous-packages, en créant une hiérarchie de répertoires. Par exemple, vous pourriez avoir un package `mon_projet` contenant un sous-package `utilitaires` et un sous-package `graphiques`.
Vous pouvez importer des modules d'un package en utilisant la notation `package.module`. Par exemple : `import mon_projet.utilitaires.fonctions`. Vous pouvez également utiliser `from ... import ...` pour importer des éléments spécifiques d'un module d'un package.
Nous verrons comment créer des packages, comment les organiser, comment utiliser le fichier `__init__.py`, et comment importer des modules depuis des packages.
Le fichier `__init__.py` : initialisez vos packages
Comme mentionné précédemment, le fichier `__init__.py` est un fichier spécial qui indique à Python qu'un répertoire doit être traité comme un package. Ce fichier peut être vide, mais il peut également contenir du code d'initialisation pour le package.
Le code dans `__init__.py` est exécuté lorsque le package est importé. Vous pouvez l'utiliser pour définir des variables, des fonctions ou des classes qui seront accessibles directement depuis le package, sans avoir à importer les modules individuels.
Vous pouvez également utiliser `__init__.py` pour contrôler quels modules sont importés lorsque vous utilisez `from package import *`. Par défaut, `from package import *` n'importe aucun module. Pour spécifier les modules à importer, vous pouvez définir une variable `__all__` dans `__init__.py`, qui doit être une liste de chaînes de caractères contenant les noms des modules.
Nous verrons des exemples d'utilisation de `__init__.py`, et comment l'utiliser pour structurer et initialiser vos packages.
Modules de la bibliothèque standard : explorez la richesse de Python
Python est livré avec une bibliothèque standard extrêmement riche, qui offre une grande variété de modules pour effectuer des tâches courantes, comme manipuler des fichiers, interagir avec le système d'exploitation, travailler avec des dates et des heures, créer des interfaces graphiques, etc.
Il est important de connaître les principaux modules de la bibliothèque standard, car ils peuvent vous faire gagner beaucoup de temps et vous éviter de réinventer la roue.
Nous explorerons quelques-uns des modules les plus utiles de la bibliothèque standard, comme :
- `math` : fonctions mathématiques (racine carrée, logarithme, trigonométrie, etc.)
- `os` : interaction avec le système d'exploitation (manipulation de fichiers et de répertoires, variables d'environnement, etc.)
- `sys` : accès à des variables et fonctions spécifiques à l'interpréteur Python
- `datetime` : manipulation de dates et d'heures
- `random` : génération de nombres aléatoires
- `json` : encodage et décodage de données JSON
- `re` : expressions régulières
- `collections` : types de données conteneurs supplémentaires (comme `namedtuple`, `deque`, `Counter`)
Cette liste n'est pas exhaustive, mais elle vous donnera un aperçu de la richesse de la bibliothèque standard. Nous vous encourageons à explorer la documentation de la bibliothèque standard pour découvrir d'autres modules utiles.