Salut,
C'est à peu près ça.
Un fichier en Python contient le code d'un module. Ce module peut être un script destiné à être exécuté (le point d'entrée d'un programme) ou bien simplement une ressource que l'on peut charger quand on veut en utiliser le code (en utilisant import nom_du_module
).
C'est dû au fait que le code des classes en Python n'est jamais très long. En effet, il est plutôt rare d'avoir une classe de 100 lignes ou plus. Du coup, plutôt que de s'imposer la lourdeur d'un fichier par classe, on préfère créer un fichier par module, chaque module contenant une "petite bibliothèque", ou bien une fonctionnalité précise du programme.
En termes d'organisation, tu vas créer un module pour écrire dedans du code dont tu estimes qu'il ne sera jamais chargé partiellement dans un programme. Par exemple si tu écris un compilateur, toutes les classes d'objets qui vont composer les arbres syntaxiques du langage vont être contenues dans le même module. Si tu écris un programme dont tu veux te laisser la possibilité de lui donner plusieurs interfaces utilisateur, tu vas mettre dans module tout le code "métier" du programme, puis créer, un nouveau module contenant l'interface en ligne de commandes, puis d'autres modules pour une interface graphique Pygame, etc.
Après, il faut savoir qu'un module a une existence propre au runtime : le module définit un espace de nom, ce qui veut dire que lorsque tu as l'impression de créer une variable globale en Python, celle-ci est en fait une variable de module. Plus loin encore, tout comme tu peux manipuler des objets ou des classes, Python te laisse aussi manipuler des modules (par exemple pour ajouter des classes ou des fonctions dedans, dynamiquement), mais là c'est plutôt des considérations avancées.
Bref, un fichier = un module = une ou pluieurs classes + une ou plusieurs fonctions + une ou plusieurs variables de module.