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 :

obtenir un résultat via une autre fonction


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 44
    Par défaut obtenir un résultat via une autre fonction
    Bonsoir! je fais face à un problème avec mon programme,je fais un GPS et le problème c'est que comme vous le voyez il y a ma fonction fenetre_intro() qui fait apparaître la fenêtre de base je suis donc obligé de passer par la pour que la suite du programme fonctionne, or à la fin de cette fonction, je fais appelle à fenetre_depart() qui est la fenêtre suivante du programme, le problème c'est que je dois extraire une variable de la fonction fenetre_depart() qui elle se termine par un "return(a)" sauf que comme je l'ai dis, je suis obligé de partir de la fonction fenetre_intro(), je ne peux donc pas faire appelle à l'autre fonction pour extraire cette variable qui m'intérresse parce que sinon mon programme va commencer directement à la deuxième fenêtre... Je sais que c'est un peux bizarrement expliqué, mais si quelqu'un a compris j'aimerais du coup savoir comment extraire une variable d'une fonction qui n'est pas directement appellée. Merci d'avance!

    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
    28
    29
    30
    def fenetre_intro():
        font = Police1
        text = font.render("MontesGPS", True, Blanc)
     
        continuer = 1
     
        ecran.fill(Noir)
        ecran.blit(text,(640 - text.get_width() // 2, 200 - text.get_height() // 2))
     
        pygame.display.flip()
     
        start=pygame.draw.rect(ecran,Blanc,(450,450,375,100),5) #zone cliquable
        placeTexte = Police2.render("Rechercher un itinéraire",True,Blanc)
        rectangleTexte  = placeTexte.get_rect()
        rectangleTexte .topleft = (475,480)
        ecran.blit(placeTexte,rectangleTexte)
        clickable_area1 = start
     
        while continuer:
            for event in pygame.event.get():
                if event.type == QUIT:
                 continuer=0
                 pygame.quit()
     
                if event.type == MOUSEBUTTONDOWN: #evenement sur zone cliquable
                    if event.button == 1:
                        if clickable_area1.collidepoint(event.pos):
                            display.update(ecran.fill(0))
                            fenetre_depart()
                pygame.display.flip()

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Citation Envoyé par Redelta Voir le message
    j'aimerais du coup savoir comment extraire une variable d'une fonction qui n'est pas directement appellée.
    Les variables créées par une fonction sont détruites à la sortie (return) de la fonction: donc on ne peut pas sauf à utiliser des variables globales.

    - 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 833
    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 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Redelta Voir le message
    Je sais que c'est un peux bizarrement expliqué
    Bonjour

    C'est parfaitement expliqué. Mais non, tu ne peux pas récupérer une valeur dans une fonction si la fonction qui génère ladite valeur n'est pas appelée. Donc il faut que tu revoies la conception de ton programme. Soit placer la génération de ladite valeur dans la fonction fenetre_intro(), soit dans une toute autre fonction qui n'a rien à voir avec un affichage de fenêtre. Cette dernière solution serait d'ailleurs plus en accord avec la programmation MVC (Modèle/Vue/Controleur). Le modèle c'est tout ce qui gère le stockage/récupération d'infos (bdd, fichiers). La vue c'est tout ce qui gère la saisie/affichage (fenêtres, menus, etc) et le controleur c'est tout ce qui gère le calcul de nouvelles infos à partir d'infos connues (donc théoriquement ce serait ici que tu devrais générer ta valeur)...
    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
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 44
    Par défaut
    Ah mince je pensais vraiment qu'il y avait un moyen... Mais sinon convertir le tout en branche de programme, je ne met plus de fonction et je laisse en mode programme normal, comme ça les variables générées seront gardées et je pourrais les réutiliser directement, c'est possible vous pensez ?

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par Redelta Voir le message
    Ah mince je pensais vraiment qu'il y avait un moyen... ?
    Si les variables globales ne vous disent rien, il est temps de regarder comment çà fonctionne en ouvrant un tuto.

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

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    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 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Si les variables globales ne vous disent rien, il est temps de regarder comment çà fonctionne en ouvrant un tuto.
    Ouais enfin les globales ne solutionnent pas tout. Si la fonction qui remplit la variable globale avec sa valeur n'est pas appelée...

    Citation Envoyé par Redelta Voir le message
    et je laisse en mode programme normal, comme ça les variables générées seront gardées et je pourrais les réutiliser directement, c'est possible vous pensez ?
    Euh oui. Si ta variable est générée avant que tu l'utilises ça va. Mais découper son programme en fonctions a aussi beaucoup d'avantages (modularité, évolutivité, ...)
    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]

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Ouais enfin les globales ne solutionnent pas tout. Si la fonction qui remplit la variable globale avec sa valeur n'est pas appelée...
    Sûr que pour que quelque chose ait été assigné à une variable (et que la variable soit définie), il faut que Python ait exécuté l'instruction correspondante.
    On peut espérer que le PO a une vague idée de cela même s'il cafouille un peu côté fonctions et portée des variables...
    En tous cas, revoir tout çà dans un tuto. lui sera bénéfique car pas facile de savoir découper son code en fonctions sinon.

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

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 44
    Par défaut
    Ou bien pourquoi pas appeler les 2 fonctions l'une après l'autre ? Je lance ma première fonction et dès que j'ai cliqué sur "commencer", pygame se ferme et le programme se charge de lancer la 2ème fonction et du coup je pourrais extraire la variable puisque la fonction sera directement appelé dans le script ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/12/2018, 10h16
  2. [XL-2007] liste en fonction du résultat d'une autre liste
    Par Lison Lisette dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/09/2010, 14h54
  3. Résultat d'une fonction en argument d'une autre fonction.
    Par xess91 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/04/2009, 15h15
  4. creation de fonction et appel via une autre classe
    Par oceane751 dans le forum Langage
    Réponses: 3
    Dernier message: 21/01/2008, 23h26
  5. Réponses: 3
    Dernier message: 24/05/2007, 11h23

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