Modules & packages#
courant
Import#
import math
import math as m
from math import sqrt, pi
from math import * # à éviter (pollue l'espace de noms)
math.sqrt(16)
Structure d'un package#
mon_package/
__init__.py # rend le dossier importable ; peut être vide
module_a.py
module_b.py
sous_package/
__init__.py
module_c.py
__name__ == "__main__"#
def main():
...
if __name__ == "__main__": # False si le fichier est importé, True si exécuté directement
main()
__all__ avancé#
Import relatif dans un package avancé#
from . import module_a # module du même package
from .sous_package import module_c # module d'un sous-package
from ..utils import outils # module d'un package frère, via le parent
Les imports relatifs ne fonctionnent que dans un package importé, jamais dans un fichier lancé directement (python module_a.py → ImportError). Lancer via python -m mon_package.module_a.
Modules standards fréquents#
| Module | Usage |
|---|---|
pathlib, os, shutil |
Fichiers, chemins, copie/suppression d'arborescences |
sys, argparse |
Arguments, environnement d'exécution, scripts CLI |
datetime, zoneinfo, time |
Dates, fuseaux horaires, chronométrage |
json, csv |
Lecture / écriture de données structurées |
re |
Expressions régulières |
math, statistics, decimal |
Calcul numérique et précision |
random |
Tirages aléatoires, simulation |
collections, itertools, functools |
Structures et outils d'itération |
enum, dataclasses |
Modélisation de données |
logging |
Journalisation |
unittest |
Tests automatisés |