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

PyQt Python Discussion :

Récupéer une valeur retournée par une fonction définie dans une autre classe


Sujet :

PyQt Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut Récupéer une valeur retournée par une fonction définie dans une autre classe
    Bonjour
    j'essaie de déclarer une variable valeur1=retourne :
    retourne est la valeur de retour d'une fonction déclarée dans une autre classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class Classe2():
     
        def retourneFonction(self):
            valeur2=3
            print valeur3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    from Classe2 import Classe2
    class Classe1():
         ......
         self.classe=calsse2()
         valeur1=..????
    je veux initialiser valeur1=valeur3

  2. #2
    Membre confirmé

    Profil pro
    Développeur Java
    Inscrit en
    Mars 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 87
    Points : 537
    Points
    537
    Par défaut
    Bonjour,
    "print" ne renvoit qu'à l'ecran la valeur, la méthode retourneFonction à l'heure actuelle ne renvoit rien. Pour renvoyer la valeur, il faut utiliser le mot clé "return" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class Classe2():
     
        def retourneFonction(self):
            valeur2=3
            return valeur3
    Et utiliser la fonction comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    from Classe2 import Classe2
    class Classe1():
         ......
         self.classe=calsse2()
         valeur1= self.classe.retourneFonction()
    Cordialement,

    Olivier.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    merci mais
    j'ai testé le code ça n'affiche pas de résultats
    je n'ai pas de message d'erreur mais pas de résultats non plus.

  4. #4
    Membre confirmé

    Profil pro
    Développeur Java
    Inscrit en
    Mars 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 87
    Points : 537
    Points
    537
    Par défaut
    rajoute un "print valeur1" si tu veux afficher la valeur de valeur1 à l'écran de la console.

    Olivier.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    c ce que j'ai fais

  6. #6
    Membre confirmé

    Profil pro
    Développeur Java
    Inscrit en
    Mars 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 87
    Points : 537
    Points
    537
    Par défaut
    Pourrais-tu mettre dans la discussion tout ton code, histoire de pouvoir comprendre d'où vient le problème.
    Merci d'avance.

    Olivier.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Points : 93
    Points
    93
    Par défaut
    ok
    code 1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class classe2():
        def nb(self):
             return 3

    code 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from classe2 import classe2
     
     
     
    class classe1():
        def __init__(self, parent):
            super(classe1, self).__init__(parent)
            self.classeTest=classe2()
            valeur1= self.classeTest.nb()
            print valeur1
    merci d'avance

  8. #8
    Membre confirmé

    Profil pro
    Développeur Java
    Inscrit en
    Mars 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 87
    Points : 537
    Points
    537
    Par défaut
    Le problème ne vient pas de l'appel de méthode l'exemple ci-après fonctionne parfaitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    >>> class classe2():
    ...     def nb(self):
    ...          return 3
    ... 
    >>> class classe1():
    ...     def __init__(self):
    ...         self.classeTest=classe2()
    ...         valeur1= self.classeTest.nb()
    ...         print valeur1
    ... 
    >>> classe1()
    3
    <__main__.classe1 instance at 0x7fd4807f1f80>
    Le problème vient de ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def __init__(self, parent):
            super(classe1, self).__init__(parent)
    Je ne sais pas ce que tu essayes d'accomplir, mais le code précédent fonctionne.
    Cordialement,

    Olivier.

  9. #9
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    L'appel à super fait référence à la méthode __init__ de la classe ancêtre, ce qui suppose qu'elle dérive d'une autre classe, ce qui n'est pas le cas ici. En plus, il eut été nécessaire de définir 'parent' qui en PyQt4 définit une appartenance d'un objet graphique à un autre (ex: un bouton sur une fenêtre).

    Ici, comme 'object' est la classe la plus 'ancêtre' sous Python, on pourrait écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class Test(object):
        def __init__(self):
            super(Test, self).__init__()
     
    x = Test()
    Et là, super ne déclenche plus d'erreur (même s'il n'est pas utile).

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/07/2015, 15h55
  2. Récupérer une valeur retournée par une url externe
    Par hadakamatcho dans le forum Coldfusion
    Réponses: 2
    Dernier message: 17/10/2012, 15h17
  3. Récupérer une valeur retournée par Ajax
    Par Akazed dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 23/01/2012, 12h50
  4. Récupérer une valeur retournée par une url
    Par Math77 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 16/03/2011, 09h14
  5. Réponses: 1
    Dernier message: 13/04/2010, 11h00

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