Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fragmenter son code

Sujet résolu
Anonyme
    4 avril 2015 à 18:22:28

    Bonjour,

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

    fichier.py
        - Importation des modules
        - classe 1
        - ...
        - classe n
        - fonction 1
        - ...
        - fonction n
        - Instructions

    Et j'aimerai arriver à ceci :

    fichier principal.py
        - Importation des modules
        - Instructions
    fichier_1.py
        - classe 1
    fichier_2.py
        - classe 2
    ...
    fichier_n.py
        - fonction n 

    Alors bien sur 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 qu'il me dit qu'il ne connait pas cette variables.

    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.



    • Partager sur Facebook
    • Partager sur Twitter
      4 avril 2015 à 18:39:51

      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 !

      -
      Edité par nohar 4 avril 2015 à 18:43:02

      • Partager sur Facebook
      • Partager sur Twitter
      Zeste de Savoir, le site qui en a dans le citron !
      Anonyme
        4 avril 2015 à 19:36:58

        D'accord je comprend mieux. En suivant tes conseils j'ai réussi à adapter une classe pour l'inclure dans mon projet. 

        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.

        C'est vrai que c'est intelligent :-° 

        Par exemple, pour mon jeu j'ai un écran qui affiche le logo du jeu pendant 1 seconde, du coup j'ai transformé ça en une fonction et je l'ai mise dans un autre fichier et pour l'appelé je dois passer en paramètre : la surface sur laquelle afficher le logo, le logo et la couleur de fond. Et du coup ça affiche le logo au centre de la surface. C'est la bonne manière de faire ?

        Donc je pourrais pas fragmenter mon code comme je voulais (cf : mon deuxième "schéma" du premier post, je devrais, si je veux fragmenté mon code, transformer ce qui est possible en module (et ce qui a du sens d'être transformé en module) comme cet écran de présentation par exemple ?

        • Partager sur Facebook
        • Partager sur Twitter
          4 avril 2015 à 19:55:01

          Voilà, t'as tout compris.

          Plus tu prends l'habitude de réfléchir en modules indépendants, plus tu écris du code réutilisable, plus tu rentabilises tes efforts.

          • Partager sur Facebook
          • Partager sur Twitter
          Zeste de Savoir, le site qui en a dans le citron !
          Anonyme

          Fragmenter son code

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown