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 :

récupérer variable à la sortie du script python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 243
    Par défaut récupérer variable à la sortie du script python
    Bonjour,

    J'utilise un script python dans le logiciel FME pour préparer les traitements qui seront effectués dans ce dernier.
    Lorsque le script est simple par exemple :
    var = 'test'
    return var
    Le programme récupère bien 'var' et poursuit les traitements qu'il doit effectuer en fonction de cette variable.

    En revanche dans un cadre plus élaboré, je ne parviens pas à récupérer ma variable de retour et à poursuivre les traitements.
    Mon code se présente sous la forme suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    import psycopg2
    import fmeobjects
    import sys
    import PyQt4
    import signal
    from PyQt4 import QtCore, QtGui
     
    class Example(QtGui.QWidget):
        def __init__(self):
            super(Example, self).__init__()  
            self.initUI()
        def initUI(self):
            *****
            self.show()
        def selection(self):
             ****
        def valide(self):
              ****  
        def traitement(self, selection):
              return resultat #Fonctionne pas
              ****  
    def main():
        app = QtGui.QApplication(sys.argv)
        ex = Example()
        sys.exit(app.exec_())
    if __name__ == '__main__':
        main()
    J'ai essayé sys.exit(resultat), return resultat dans la fonction main() sans succès

    Pourriez vous m'aider à comprendre pourquoi je ne parviens pas à récupérer ma variable ?

    Merci d'avance.

    Voici le lien de la discussion d'origine sur georezo :
    http://georezo.net/forum/viewtopic.php?id=86049

    edit :

    Finalemement, il n'y avait pas de difficulté, j'ai défini ma variable result en global et j'ai écrit le "return result" à la toute fin du script en dehors de la classe et des fonctions.

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Dans l'exemple donné ci-dessus, où se trouve la variable var ?

    Voici un exemple d'utilisation d'une classe en Python

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Exemple:
        def __init__(self):
            self.var = 0
        def getVar(self):
            return self.var
     
    e = Exemple() # création d'un objet Exemple
     
    # Affichage de l'attribut var
     
    print(e.var)
    print(e.getVar())
    Tu entres directement dans l'utilisation de la POO et la notion d'héritage, ça risque d'être beaucoup pour un débutant en python, bon courage !

  3. #3
    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,

    Citation Envoyé par fred1599 Voir le message
    Dans l'exemple donné ci-dessus, où se trouve la variable var ?
    Peut être que la méthode "traitement" est un callback.
    Dans ce cas, "return" retournera bien quelque chose à l'appelant mais rien au code utilisateur.

    Ceci dit le truc étant tombé en marche on ne saura peut être jamais le pourquoi du comment.
    (et cela n'a aucune importance)

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

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 243
    Par défaut
    Bonjour,

    Merci pour votre réponse.

    La variable var servait juste d'illustration.

    C'est vrai que la partie objet n'est pas évidente. Surtout que pour m'avancer j'ai adapté des scripts existants avec du copier coller et du coup pour comprendre les articulations de certaines choses classe, main,init etc c'est un peu compliqué mais une fois dedans ca va.

    En partant de zéro j'aurais mieux maitrisé mon code mais bon ...

    Je peux copier le code mais je ne pense pas qu'il apporte beaucoup de chose aux utilisateurs du site... ?

  5. #5
    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 jonathan1 Voir le message
    Je peux copier le code mais je ne pense pas qu'il apporte beaucoup de chose aux utilisateurs du site... ?
    Si le passage de variableobjets est entre un script le Python embedded dans le logiciel FME et "FME", çà intéresserait plutôt le forum GIS.

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

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2014, 19h26
  2. Réponses: 10
    Dernier message: 14/07/2009, 18h39
  3. Réponses: 6
    Dernier message: 15/04/2009, 14h20
  4. Réponses: 1
    Dernier message: 18/10/2007, 17h13
  5. Récupérer des variables Perl dans un script PHP
    Par barabath dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 01h27

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