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 :

Import en cascade


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Par défaut Import en cascade
    Bonjour,

    Je ne sais pas trop comment appeler celà et c'est surement pour ca que je ne trouve rien sur internet.
    Je souhaite organiser mon programme python d'une façon particulière, je m'explique:
    Je possède un fichier de l'interface graphique qui créer des boutons automatiquement à partir d'une liste de fonction. Cette liste de fonctions est située dans un autre fichier pour plus de clarté. Mais le problème est que ce fichier ne contient que les noms des fonctions, les fonctions sont importé à partir d'un autre fichier qui contient le programme de l'application. Et ce fichier de programme lui même ce sert d'un autre fichier pour inclure des focntions de base.

    Pour résumer:
    Interface graphique ->import-> list_fonctions ->import-> fonction_haut_niveau ->import-> fonction bas niveau.

    j'ai écris les imports de cette manière
    Interface graphique : from list_fonctions import *
    list_fonctions : from fonction_haut_niveau import *
    fonction_haut_niveau: from fonction_bas_niveau import *

    Seulement cette chaîne ne fonctionne pas. Lorsque j'inscris une fonction haut niveau dans list fonctions elle est reconnue mais ne se lance pas(je pense car elle appelle des fonctions bas niveau) pas de message d'erreur, seulement le programme cesse de fonctionner correctement.
    Lorsque j'appelle directement une fonction bas_niveau dans list_fonction, la fonction n'est pas reconnue.

    Je pense que j'ai besoin d'une petite mise au point sur le fonctionnement précis de import dans python. Merci de votre aide. J'espère être assez clair et ne pas avoir fait un doublon.

    Cordialement
    Jep31

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Bonjour,

    Pourquoi l'interface ne peut-elle importer directement de 'fonction_haut_niveau' ?

    Est-ce parce que 'fonction_haut_niveau' contient d'autres fonctions inutiles à l'interface ? Dans ce cas il suffit d'importer les fonctions nommément.

    Supprimer le fichier intermédiaire de noms de fonctions n'est qu'une piste, mais aurait le mérite de clarifier les imports.

    D'autre part, tes explications laissent entendre que l'interface serait le script '__main__', c'est courant pour de petites applications, mais dès qu'un programe prend de l'ampleur, il est bien d'avoir un '__main__' distinct, alors ton problème d'import ne se poserait plus.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Par défaut
    Salut,

    Désolé, je viens d'être victime du phénomène très courant qui fait que dés que l'on pose la question sur un forum on trouve la réponse et que en plus elle n'avait rien avoir avoir la question...

    En fait un de mes import était mal déterminé. Il importe en effet un fichier qui se trouve dans un autre dossier et le path était mal défini.

    En fait je ne possède pas qu'un seul main car j'utilise ROS qui lance plusieurs programme (nodes) en même temps.
    J'ai une interface graphique qui possède un main et un programme complètement séparé qui en possède un autre. Les deux peuvent fonctionner indépendamment. Le programme fonctionne sans l'interface graphique et l'interface graphique possède directement quelques fonctions.

    L'interface n'importe pas directement les fonctions de hauts niveaux car le fait de les ranger dans une liste automatise la manière de rajouter un bouton.
    En fait il suffit d'ouvrir le fichier liste et d'y inscrire le nom de la fonction que l'on veut actionner avec un nouveau bouton qui se rajoute tout seul dans l'interface. Perso je trouve ça très pratique.

    Le main de l'interface graphique ne fait que exécuter la classe de l'interface. Apres le tout est géré dans les méthodes de la classe. Je pense ainsi que mon main est bien placé, non ?

    Donc pour clore le sujet on me confirme que l'import en cascade comme je l'appelle fonctionne bien ? Si je fais une suite d'import, tout est donc importé dans mon programme le plus haut placé dans la cascade ?

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

Discussions similaires

  1. [AC-2010] Création d'une nomenclature en cascade via un import Excel
    Par Lajemeclate dans le forum Modélisation
    Réponses: 9
    Dernier message: 17/06/2013, 16h44
  2. Importer des enregistrements en cascade
    Par docjo dans le forum Modélisation
    Réponses: 3
    Dernier message: 10/04/2008, 20h16
  3. [DEV-C++]#import de fichier .tlb
    Par pdl dans le forum Dev-C++
    Réponses: 6
    Dernier message: 19/07/2002, 22h46
  4. Importer des objets de 3dsMax
    Par Anonymous dans le forum OpenGL
    Réponses: 3
    Dernier message: 06/05/2002, 13h53
  5. IMPORTANT! A lire avant tout chose
    Par Aurelien.Regat-Barrel dans le forum Windows
    Réponses: 0
    Dernier message: 01/05/2002, 16h55

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