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 :

comment retourner une variable d'un module python


Sujet :

Python

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut comment retourner une variable d'un module python
    je découvre python... et je ne parviens pas a retourner une variable de la fonction enfant vers la fonction principale (parent):
    dans mon programme principal, ces fonctions sont comprises dans une super classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def OpenLastMayaScn(self, *args):      
        root =  'X:/projectsDir/'
        ext = '.ma'
        self.FindLastFunc(root,extension,Last_File)
        print 'Last_File: ', Last_File # result: Last_File:
     
    def FindLastFunc(self,root,extension,Last_File):
        import FindLastTMP
        FindLastTMP.FindLast(root,extension,Last_File)
    il appelle cette fonction dans un module séparé appelé 'FindLastTMP.py' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def FindLast(root, extension, Last_File):
        global Last_File
        print 'root:' , root # result: X:/projectsDir/
        print 'extension: ', extension   # result:  .ma
        Last_File = 'test'
        return Last_File
    seulement il ne recupere pas la variable 'Last_File' dans le programme principal...
    Merci beaucoup de votre aide

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 276
    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 276
    Points : 36 761
    Points
    36 761
    Par défaut
    Salut,

    Citation Envoyé par manue154 Voir le message
    je découvre python... et je ne parviens pas a retourner une variable de la fonction enfant vers la fonction principale (parent):
    dans mon programme principal, ces fonctions sont comprises dans une super classe:
    Avec Python, si vous écrivez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        self.FindLastFunc(root,extension,Last_File)
        print 'Last_File: ', Last_File # result: Last_File:
    l'objet associé à la variable Last_File ne pourra être modifié que s'il est "mutable".
    D'autre part, la portée d'une variable globale est réduite au module. Si vous écrivez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        global Last_File
        Last_File = 'test'
    çà changera la variable Last_File du module courant et non celle du module appelant.

    Pour découvrir Python, il faut prendre le temps d'ouvrir un tuto.
    Si vous savez programmez, le Python Tutorial (qui vient avec la documentation Python) vaut le détour.

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

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci wiztricks,
    mais je ne veux pas la modifier la variable, je veux juste la recupérer dans le module appelant:
    print 'Last_File: ', Last_File
    # result: Last_File:
    et il ne me retourne rien...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 276
    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 276
    Points : 36 761
    Points
    36 761
    Par défaut
    Citation Envoyé par manue154 Voir le message
    mais je ne veux pas la modifier la variable, je veux juste la recupérer dans le module appelant:
    print 'Last_File: ', Last_File
    # result: Last_File:
    Plutôt qu'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        self.FindLastFunc(root,extension,Last_File)
        print 'Last_File: ', Last_File # result: Last_File:
    écrivez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Last_File = self.FindLastFunc(root,extension,Last_File)
        print 'Last_File: ', Last_File # result: Last_File:
    i.e. vous récupérez le résultat de la fonction pour l'assigner à ce que vous voulez.
    note: avec le code que vous avez posté çà pourra planter avec UnboundLocalError...

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

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci encore wiztricks!
    sais tu comment faire si j'ai plusieurs variables de type Last_File a recuperer?

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

Discussions similaires

  1. comment envoyer une variable dans un lien en python?
    Par nYrL-iCe dans le forum Django
    Réponses: 2
    Dernier message: 15/09/2015, 15h25
  2. Comment retourner une variable dans un champ ?
    Par majudis dans le forum VBA Access
    Réponses: 6
    Dernier message: 23/02/2011, 16h36
  3. Réponses: 1
    Dernier message: 08/01/2010, 17h28
  4. Réponses: 13
    Dernier message: 08/03/2007, 14h53
  5. [VBA-E] Comment accéder à une variable tableau située dans un autre module
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/02/2007, 13h15

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