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 :

appel de liste dans une fonction depuis une autre


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2019
    Messages : 41
    Par défaut appel de liste dans une fonction depuis une autre
    Bonsoir,

    J'ai une fonction qui me renvoie une liste, comment faire pour utiliser cette liste dans une autre fonction ?

    J'ai essayé de la déclarer en global dans la première fonction mais ça ne fonctionne pas
    J'ai essayé de l'appeler dans les paramètres de l'autres fonction mais ça ne fonctionne pas non plus

  2. #2
    Membre confirmé
    Homme Profil pro
    Responsable plancher d'essais et test final
    Inscrit en
    Octobre 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable plancher d'essais et test final
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 29
    Par défaut
    Citation Envoyé par Matthieu_12 Voir le message
    Bonsoir,

    J'ai une fonction qui me renvoie une liste, comment faire pour utiliser cette liste dans une autre fonction ?

    J'ai essayé de la déclarer en global dans la première fonction mais ça ne fonctionne pas
    J'ai essayé de l'appeler dans les paramètres de l'autres fonction mais ça ne fonctionne pas non plus
    Un exemple de ton code permettra très certainement de t'aider et de t'expliquer les notions que tu n'as pas comprises.

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2019
    Messages : 41
    Par défaut
    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
    def y():
        liste = []
        r, x = 0, 0
        while x < 10:
            r = random() 
            liste.append(r)
            x+=1
        return liste
     
    def z():
        liste2 = []
        for e in liste:
            e = e+1
            liste2.append(e)
        return liste2
     
    # je souhaite accéder liste dans z()

  4. #4
    Membre confirmé
    Homme Profil pro
    Responsable plancher d'essais et test final
    Inscrit en
    Octobre 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable plancher d'essais et test final
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 29
    Par défaut
    Poste également ton code avec l'usage de 'global'

  5. #5
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2019
    Messages : 41
    Par défaut
    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
    def y():
        global liste = []
        r, x = 0, 0
        while x < 10:
            r = random() 
            liste.append(r)
            x+=1
        return liste
     
    def z():
        liste2 = []
        for e in liste:
            e = e+1
            liste2.append(e)
        return liste2

  6. #6
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2019
    Messages : 41
    Par défaut
    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
    def y():
     
        global liste 
        liste = []
        r, x = 0, 0
        while x < 10:
            r = random() 
            liste.append(r)
            x+=1
        return liste
     
    def z():
        liste2 = []
        for e in liste:
            e = e+1
            liste2.append(e)
        return liste2
    Facepalm

  7. #7
    Membre confirmé
    Homme Profil pro
    Responsable plancher d'essais et test final
    Inscrit en
    Octobre 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable plancher d'essais et test final
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 29
    Par défaut
    Citation Envoyé par Matthieu_12 Voir le message
    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
     
    def y():
        liste = []
        r, x = 0, 0
        while x < 10:
            r = random() 
            liste.append(r)
            x+=1
        return liste
     
    def z():
        liste2 = []
        for e in liste:
            e = e+1
            liste2.append(e)
        return liste2
     
    # je souhaite accéder liste dans z()
    Dans ce code, quand tu appelles la fonction y(), ta variable liste est définie dans la fonction et n'a de portée quand dans la fonction.
    Elle ne sera donc pas accessible en dehors de la fonction, ni dans le script principal, ni dans les autres fonctions.
    Tout ce que tu pourras faire c'est récupérer son contenu en affectant le retour de l'appel de la fonction y() à une variable, la fonction y() retournant le contenu de liste.
    Il faut retenir qu'une variable définie dans ton script est globale et est donc accessible aussi dans les fonctions.
    Par contre elle ne sera pas modifiable dans une fonction.

    Donc, pour qu'elle puisse être accessible dans la fonction z() et modifié dans y(), il faut utiliser 'global' dans la fonction y()comme tu as essayé de le faire.
    Mais pour ça elle doit d'abord être définie dans ton script principal et déclarée 'global' dans ta fonction, de cette manière tu pourras l'utiliser partout et la modifier dans la fonction y()

    L'autre manière indirecte d'accéder à liste dans z() sans utiliser 'global', c'est de passer le contenu de ta variable liste (retourné par la fonction y()) en argument à l'appel de la fonction z() et d'utiliser l'argument passé dans la fonction z(), ce que tu ne fais pas dans ton exemple.

  8. #8
    Membre confirmé
    Homme Profil pro
    Responsable plancher d'essais et test final
    Inscrit en
    Octobre 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable plancher d'essais et test final
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2016
    Messages : 29
    Par défaut
    Citation Envoyé par Matthieu_12 Voir le message
    J'ai essayé de l'appeler dans les paramètres de l'autres fonction mais ça ne fonctionne pas non plus
    Je ne vois nulle part dans les exemples que tu as postés celui ou tu essaies de passer la liste en paramètre de l'autre fonction.
    Il faut mettre ton code complet, parce que même là ça ne fonctionnera pas, il n'y a pas l'import de la fonction 'random' et tes fonctions ne sont pas appelées.

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 720
    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 720
    Par défaut
    Citation Envoyé par Matthieu_12 Voir le message
    J'ai une fonction qui me renvoie une liste, comment faire pour utiliser cette liste dans une autre fonction ?
    C'est le genre de chose expliqué dans les chapitres sur les fonctions de n'importe quel tuto. La plupart proposent des exercices (corrigés).

    Ce serait pas mal d'y jeter un œil (et plus...) car on peut essayer de vous expliquer ce que vous n'avez pas compris. Ce qui suppose que vous avez fait l'effort d'essayer de comprendre (en ouvrant un tuto. et en relisant les chapitres qui vont bien avant de poster).

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

  10. #10
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    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 830
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Matthieu_12 Voir le message
    J'ai une fonction qui me renvoie une liste, comment faire pour utiliser cette liste dans une autre fonction ?
    Boaf, si tu as une fonction qui te renvoie un nombre et que tu sais utiliser ce nombre dans une autre fonction, c'est un peuexactement pareil !!!
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def fct_nbr(): return 123
    def fct_list(): return list(range(10))
    def titi(xxx): print(xxx)
     
    titi(fct_nbr() * 2)
    titi(fct_list() * 2)

    Citation Envoyé par Matthieu_12 Voir le message
    J'ai essayé de la déclarer en global dans la première fonction mais ça ne fonctionne pas
    J'ai essayé de l'appeler dans les paramètres de l'autres fonction mais ça ne fonctionne pas non plus
    Moui. Moi j'ai essayé de danser une nuit de pleine lune autour d'un cercle de pierres mais ça ne fonctionne pas non plus. Python ce n'est pas de la magie dans laquelle on jette des instructions "pour essayer". On a un objectif, on choisit les instructions qui nous permettront d'atteindre cet objectif et on les assemble. Ca ne sert à rien de passer par global (qui a pour but de rendre une variable accessible de partout) si justement on retourne la valeur que l'on veut lui affecter (plus besoin alors qu'elle soit accessible de partout puisqu'elle récupèrera sa valeur au bon moment).
    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]

Discussions similaires

  1. appel du callback dans une autre fonction
    Par amine_wn dans le forum Interfaces Graphiques
    Réponses: 0
    Dernier message: 08/04/2015, 18h07
  2. Réponses: 3
    Dernier message: 25/01/2007, 08h54
  3. Copier une liste dans une autre
    Par chris3544 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 28/12/2006, 13h18
  4. Probleme appel de fct dans une autre classe
    Par crakotte_finance dans le forum C++
    Réponses: 6
    Dernier message: 09/10/2006, 21h22
  5. Rechercher les element d'une liste dans une autre liste
    Par fessebleu dans le forum Langage
    Réponses: 30
    Dernier message: 24/04/2006, 21h23

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