Fragmenter son code

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

Actuellement, j'ai un projet écrit en Python et il commence à être bien long. Du coup j'aimerai fragmenter mon code pour pouvoir modifier plus simplement les différentes parties du code. En gros j'ai un projet qui à une structure comme ceci :

1
2
3
4
5
6
7
8
9
fichier.py
    - Importation des modules
    - classe 1
    - ...
    - classe n
    - fonction 1
    - ...
    - fonction n
    - Instructions

Et j'aimerais arriver à ceci :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
fichier principal.py
    - Importation des modules
    - Instructions
fichier_1.py
    - classe 1
fichier_2.py
    - classe 2
...
fichier_n.py
    - fonction n 

J'ai essayé avec une classe, je l'ai mise dans un fichier et j'ai importé le fichier dans le fichier principal, mais dans ma classe j'utilise des variables qui sont définis dans le fichier principal, et du coup python me renvoie une erreur parce parce qu'il ne connait pas cette variable.

En faite je voudrait juste faire un truc du genre include(fichier_n.py), pour que le code de ce fichier soit collé à cet endroit.

Édité par anonyme

+0 -0

Cette réponse a aidé l'auteur du sujet

Crée un fichier (par exemple : settings.py, vars.py…) contenant tes variables globales et importe ce fichier depuis le principal et celui de ta classe.

Édité par Vayel

+0 -0
Auteur du sujet

Il n'y a pas d'équivalent à include en Python.¹

La façon dont ton module est présenté à la base est la bonne. Si tu veux fragmenter ton projet, il faut que tu le fasses en modules qui ont du sens et qui regroupent les fonctions et classes en fonctionnalités qui ont le même "thème" et le même niveau d'abstraction.

i.e. Pense tes modules comme s'ils étaient indépendants les uns des autres : un "bon" module est un module que tu pourrais, si tu le voulais, te contenter d'importer dans un autre projet pour en utiliser les fonctionnalités.

¹: et tant mieux !

¹: et tant mieux !

nohar

Du coup avec la réponse de Nohar sur un autre forum, j'ai modifié quelques fonction et quelques classes pour qu'elles ne dépendent plus du projet, des autres classes et des autres fonctions.

Merci Vayel, j'ai aussi suivi ton "astuce" pour regrouper tous mes chargements d'images et recuperation de leur taille (Pygame) dans un autre fichier

Édité par anonyme

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte