IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Aide decoupe des fichiers


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2021
    Messages : 5
    Par défaut Aide decoupe des fichiers
    Bonjour a tous,

    si je poste ici, c'est que je n'arrive pas a trouvé de réponses, peut être n'ai je pas les bons termes.
    je suis sur RPI en python3 (novice)
    je voudrais découper mon programme en plusieurs fichiers, pour pouvoir maintenir et faire évoluer facilement mon programme.
    en gros je cherche à faire deux fichiers :

    librairies.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    # Importation des librairies
    import pygame
    from pygame.locals import *
    import picamera
    et
    programme.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    windows_surface = pygame.display.set_mode((800, 600),RESIZABLE)
    windows_surface.fill([20,52,54])
    ...
    puis un autre : variables.py pour y définir les variables du programme principal

    évidement la il manque un bon morceau de code pour que cela fonctionne

    Pour répondre a vos question , vu que le programme va avoir plusieurs configuration, je trouve plus simple de séparer au maximum les fichier pour pouvoir modifier le programme par la suite, quitte a me faire chier un peut plus au moment de la création.
    Donc SVP merci de ne pas me répondre "c'est mieux de tout mettre dans un seul fichier" ou autre réponse telles que celle ci.
    Et si vous avez envie de me dire que sur Google on trouve, merci de m'indiquer les terme a utiliser pour cela

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Salut,

    Il n'y a pas de fonctionnalité pour découper un fichier script en plusieurs fichiers qu'on réunirait ensuite pour récupérer l'original.

    Avec Python, on découpe le programme en "modules" qu'on importe au besoin (comme vous le faites avec "import pygame").

    Et pour plus d'infos sur comment çà fonctionne, ce chapitre du python tutorial est un bon début. (mais çà ne vous apprendra pas à découper votre programme en modules).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Salut

    Contrairement à tes à priori, on est ici plutôt favorable au découpage car on est d'accord, découper permet une meilleure évolutivité (voire une sous-traitance possible). Donc personne ne te dira "c'est plus facile de tout mettre dans un seul fichier".

    Sauf que le découpage, il sera un petit peu plus élaboré que mettre les import d'un côté et le travail de l'autre. On préfèrera un découpage sur les grandes fonctionnalités du programme. Il existe d'ailleurs une méthode qui se base sur ce principe: le MVC (Modèle, Vue, Controleur)
    Le Modèle c'est la façon dont sont stockées les données (fichier, bdd, etc)
    La Vue c'est la façon dont sont entrées et affichées les données (écran, imprimante, clavier, IHM)
    Le Controleur c'est la façon dont on travaille sur les données présentes pour calculer des données futures
    Généralement à l'usage, on arrive rapidement au constat que c'est la Vue qui dirige. C'est elle qui va chercher les données dans le Modèle puis qui les fait traiter par le Controleur et qui enfin les envoie dans le Modèle pour enregistrement une fois le travail terminé. Donc tu peux partir de là. Le reste se fera au fur et à mesure que tu progresseras.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2021
    Messages : 5
    Par défaut
    Oui j'étais tombé dessus pendant mes recherches, je l'ai trouvé intéressant mais effectivement c'est pas ce que je recherche.

    J'ai vue plusieurs programme qui faisait appel a d'autre module comme tu le dis PyGame, Time, Picamera, itertools..... et bien d'autre encore, c'est bien ce genre de fonctionnement. mais alors qu'est ce que l'on peut importer et ne pas importé.

    A priori on ne peut pas importer des importations, le disant comme ça cela parait logique

    Mais est ce que l'on peut définir des Constantes dans un autre fichier puis les importer ? je crois que c'est ce qui risque d’être le plus intéressant a mettre de côté. Pour modifier des paramètre sans toucher au programme.

    En tout cas merci pour la réponse

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2021
    Messages : 5
    Par défaut
    Merci aussi Sve@r
    Je vais essayer de décanté tous ce que tu dis, pour le moment c'est du chinois, mais au moins ça me donne de quoi chercher.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Citation Envoyé par kiffkizz Voir le message
    Mais est ce que l'on peut définir des Constantes dans un autre fichier puis les importer ? je crois que c'est ce qui risque d’être le plus intéressant a mettre de côté. Pour modifier des paramètre sans toucher au programme.
    On fait ce qu'on veut tant qu'on comprend ce qu'on fait, que çà a du sens et que çà marche.

    Dans le cas particulier, un fichier de "paramètres", çà dépend qui pourra le modifier. Si c'est l'utilisateur on préférera un fichier INI éditable parce qu'il n'est pas supposé programmer avec Python (ou savoir que le programme est écrit avec Python).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par kiffkizz Voir le message
    J'ai vue plusieurs programme qui faisait appel a d'autre module comme tu le dis PyGame, Time, Picamera, itertools..... et bien d'autre encore, c'est bien ce genre de fonctionnement. mais alors qu'est ce que l'on peut importer et ne pas importé.
    Ne fais pas de cette question un problème. Il faut voir l'import comme une recopie dans ton code. Si par exemple tu as un fichier "toto.py" qui contient def carre(x): return x*x alors demander un import toto va créer dans ton code une fonction nommée "toto.carre" que tu pourras appeler à ta convenance. Tu peux aussi demander un from toto import * et dans ce cas le contenu de toto sera recopié dans ton espace de nom (la fonction se nommera alors "carre" et non pas "toto.carre"). Ca peut sembler alléchant comme possibilité mais le souci sera que si tu importes "toto" et "titi" et que les deux possèdent une fonction de même nom, le second import écrase le premier.
    Donc tu importes les librairies dont tu as besoin au fur et à mesure que tu te rends compte que tu en as besoin. Le plus difficile ce n'est pas de savoir ce qu'on peut importer, c'est quand le code évolue et qu'on supprime sans se rendre compte toute demande à une librairie "toto", de se rendre compte qu'on peut supprimer l'import de toto.

    Citation Envoyé par kiffkizz Voir le message
    A priori on ne peut pas importer des importations, le disant comme ça cela parait logique
    Il y a une possibilité
    1. tu crées un dossier du nom que tu veux (mettons "xxx")
    2. dans ce dossier tu crées un fichier nommé "__init__.py" contenant tous les import que tu veux

    Ensuite demander import xxx importera tout le contenu de "__init__.py" et ses imports. Mais c'est une technique peu utilisée car avec l'habitude on se rend compte assez vite qu'on peut s'en passer.

    Citation Envoyé par kiffkizz Voir le message
    Mais est ce que l'on peut définir des Constantes dans un autre fichier puis les importer ? je crois que c'est ce qui risque d’être le plus intéressant a mettre de côté. Pour modifier des paramètre sans toucher au programme.
    Oui bien sûr, c'est d'ailleurs assez fréquemment usité. Personnellement j'ai un objet "cEnv" qui définit tout mon environnement (chemin du dossier temporaire, nom du programme, etc) et un autre "cConfig" qui définit sa configuration (les paramètres modifiables par l'utilisateur). Cet objet utilise la librairie "configparser" qui permet de lire et écrire un fichier de type ".ini"
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2021
    Messages : 5
    Par défaut
    Grace a ce que vous m'avez fournis comme information, j'ai pue faire un plan de découpage du fichier qui me conviens asse et surtout qui devrais faire l'affaire mais il y a surement plus a voir t ça ce sera pour plus tard. je vais m’attaquer à une autre problématique et avec un peut de chance vous ne verrez pas de post car j'aurais trouvé.
    En tout cas merci pour ses réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/07/2016, 15h12
  2. aide pour des fichier en .o
    Par jeanpierre215 dans le forum Linux
    Réponses: 2
    Dernier message: 04/01/2011, 09h59
  3. Réponses: 0
    Dernier message: 14/09/2010, 23h32
  4. Réponses: 45
    Dernier message: 04/05/2006, 01h10
  5. [Dexplore] Comment charger des fichiers d'aide ?
    Par Laurent Dardenne dans le forum Windows
    Réponses: 5
    Dernier message: 04/01/2005, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo