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 :

Problème avec les fonctions que j'ai créé moi-même tout seul


Sujet :

Python

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 19
    Par défaut Problème avec les fonctions que j'ai créé moi-même tout seul
    Bonjour à toutes et à tous,

    J'ai créé cette discussion parce que je rencontre un problème et que vous allez peut-être pouvoir me donner une explication et même le résoudre si vous le voulez bien.

    C'est tout simple:

    J'ai créé une fonction, qui fait un long truc.
    dans cette fonction, je demande une valeur pour une variable.
    ensuite, je passe à une autre fonction qui suit directement la première.
    Je souhaite réutiliser la variable.
    Cependant, un message d'erreur me dit que le variable n'a pas été définie.
    Voyez-vous ce que je veux dire?
    Une indication supplémentaire: j'utilise ces fonctions en les... "lançant"(?) depuis un tiers programme.

    Pensez-vous pouvoir m'aider?
    Ce serait bien.
    Merci par avance et à bientôt!

    PS: si vous ne comprenez pas mon problème (qui à mon avis a une explication logique qui va me faire passer pour... pour je sais pas quoi qui est un peu nul), je pourrais essayer de vous montrer le code, mais simplifier.

  2. #2
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    C'est normal : la variable à l'intérieur d'une fonction est une variable locale.
    Si tu souhaites la réutiliser, il faut la définir en tant que variable globale.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 19
    Par défaut
    Aaaaaaaaaahhh...

    Mais comment qu'on fé?

    jeusépafèrsamoa?

    Pourriez vous m'expliquer? S'ilvous plait? Cela me rendrait un immense service.

    Merci encore par avance!

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

    Citation Envoyé par Palisthe Voir le message
    Pourriez vous m'expliquer? S'ilvous plait? Cela me rendrait un immense service.
    C'est expliqué dans les tutos. avec moultes exercices... De toutes façons, pas la peine d'espérer réaliser un programme "complexe" sans avoir ouvert un tuto. pour y apprendre les bases.

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

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 19
    Par défaut
    Merci bien, je suivrai ce conseil.

    Mais je tiens à dire que de nombreux autres cours permettant de connaître le langage python sont disponibles sur internet, et que je suis l'un d'eux (du verbe suivre).
    Donc, je connais les bases.
    Simplement, je ne connaissais pas cet élément.
    Merci et à bientôt.

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 19
    Par défaut encore toujours la même chose pareille, mais un peu différente.
    Rebonjour,

    En fait, je m’aperçois que j'ai le même problème avec les fonctions elles mêmes. J'utilise des fonctions dans des fonctions, mais j'aimerai n'avoir à les importer que depuis un seul programme d'où je lancerait les fonctions qui ont besoins des fonctions dont je viens de parler.

    Est-ce possible?
    Merci par avance pour vos réponses!

  7. #7
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 064
    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 064
    Par défaut
    Citation Envoyé par Palisthe Voir le message
    je pourrais essayer de vous montrer le code, mais simplifier.
    Ça serait sans doute plus simple...

  8. #8
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2017
    Messages : 19
    Par défaut
    Voilà, maintenant, je ne sait pas utiliser la fonction "global"...
    Mais zut mince!

    Quelqu'un aurait-il la gentillesse de m'éclairer, s'il vous plaît?
    Merci!

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    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 754
    Par défaut
    Citation Envoyé par Palisthe Voir le message
    Quelqu'un aurait-il la gentillesse de m'éclairer, s'il vous plaît?
    L'intérêt d'un tuto. est qu'on va pouvoir relire les chapitres intéressants lorsqu'on rencontre des difficultés de compréhension. Fonctions et portée des variables doivent se trouver dans la table des matières du tuto. que vous suivez. Dans le Swinnen, c'est ici.

    Citation Envoyé par Palisthe Voir le message
    Voilà, maintenant, je ne sait pas utiliser la fonction "global"...
    Ce qui vous permettrait déjà de savoir que "global" n'est pas une fonction...

    - 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 839
    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 839
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Palisthe Voir le message
    En fait, je m’aperçois que j'ai le même problème avec les fonctions elles mêmes. J'utilise des fonctions dans des fonctions, mais j'aimerai n'avoir à les importer que depuis un seul programme d'où je lancerait les fonctions qui ont besoins des fonctions dont je viens de parler.

    Est-ce possible?
    Bonjour

    1) tu crées un dossier "toto"
    2) dans ce dossier, tu crées un fichier "__init__.py" (même vide)
    3) encore dans ce dossier, tu crées un second fichier "f1.py" dans lequel tu y mets ta ou tes fonctions, par exemple la fonction "xxx()".
    3) depuis ton programme principal (qui se trouve au dessus du dossier "toto"), tu écris "import toto.f1" et tu auras alors accès à la fonction "toto.f1.xxx()". Si tu écris à la place "from toto import f1" alors tu pourras accéder à la fonction via le nom "f1.xxx()". Et si tu écris à la place "from toto.f1 import *" ou bien "from toto.f1 import xxx" alors tu pourras accéder à la fonction via le nom "xxx()" sans avoir besoin de mettre "toto.f1" devant (attention aux conflits de noms dans ce cas là)
    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]

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

    Citation Envoyé par Sve@r Voir le message
    1) tu crées un dossier "toto"
    2) dans ce dossier, tu crées un fichier "__init__.py" (même vide)
    3) encore dans ce dossier, tu crées un second fichier "f1.py" dans lequel tu y mets ta ou tes fonctions, par exemple la fonction "xxx()".
    3) depuis ton programme principal (qui se trouve au dessus du dossier "toto"), tu écris "import toto.f1" et tu auras alors accès à la fonction "toto.f1.xxx()". Si tu écris à la place "from toto import f1" alors tu pourras accéder à la fonction via le nom "f1.xxx()". Et si tu écris à la place "from toto.f1 import *" ou bien "from toto.f1 import xxx" alors tu pourras accéder à la fonction via le nom "xxx()" sans avoir besoin de mettre "toto.f1" devant (attention aux conflits de noms dans ce cas là)
    Pourquoi passer du temps à raconter vite et mal ce qui est déjà raconté dans un tuto. avec images, exemples,... Un tuto. c'est un peu comme une bibliothèque, on peut ignorer son existence mais quand on sait qu'elle existe dommage de recoder soi-même ce qu'elle fait déjà, non?

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

  12. #12
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Un exemple à comprendre :
    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 f_loc(x):
        a = x
        print ("f_loc : \t", a)
     
    def f_glob(x):
        global a
        a = x
        print ("f_glob : \t", a)
     
    def g(x):
        print ("g : \t\t", a)
     
    a = 42
    f_loc(33)
    g(24)
    f_glob(65)
    f_loc(76)
    g(77)

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

Discussions similaires

  1. Problèmes avec les fonctions et replace
    Par Tommyl dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 01/12/2006, 21h34
  2. Problème avec les fonctions
    Par gizida dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/07/2006, 14h15
  3. Réponses: 2
    Dernier message: 10/05/2005, 10h58
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

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