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 :

Variable globale entre module


Sujet :

Python

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut Variable globale entre module
    Bonjour
    J'essaie de faire quelque chose de sale mais pas le choix

    J'ai deux module python : mod1 et mod2

    dans mod1, j'ai une fonction : f1 dans laquelle je met à jour une variable
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    golblal obj
    def f1():
       obj = "toto"

    dans mod2, j'aimerai utiliser cette variable or je n'y arrive pas (me retourne None)

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from mod1 import *
    def f2():
       print obj #None

    en sachant que f1 est bien appelé avant f2 pourtant

    Merci pour l'aide

  2. #2
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    Un petit exemple valant mieux qu'un long discours...

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    obj = None
     
    def f1():
        global obj
        obj = "toto"
     
    f1()

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import mod1
    def f2():
        print mod1.obj #None
     
    f2()

    avec golblal à la place de global, ça ne peut clairement pas marcher. Si la fonction f1 n'est pas explicitement appelée (ligne 7 de mod1), la globale ne sera jamais initialisée.

    A noter qu'on peut faire un mod1 largement plus simple:


    A+

    Pfeuh

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Bonjour

    Tout d'abord merci pour ta réponse

    golblal est une faute de frappe ici, je te rassure
    Pour le reste, ton aide m'a été précieuse car ça me donne le résultat espéré

    Merci

  4. #4
    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
    Autre solution, créer par exemple un fichier var.py où tu places toutes les variables modifiables.

    Tu appelles ces variables par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import var
     
    # ...
     
    def f1():
        var.obj = "toto"
    C'est plus propre, et ça impose au moins une organisation...

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

Discussions similaires

  1. [XL-2010] Variable globale entre 2 userforms
    Par bastou93 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/07/2011, 07h54
  2. Variable globale entre plusieurs scripts
    Par Dan25 dans le forum VBScript
    Réponses: 2
    Dernier message: 01/03/2011, 17h15
  3. variable "globale" entre plusieurs fichiers
    Par kitue dans le forum Caml
    Réponses: 2
    Dernier message: 18/01/2010, 16h58
  4. [Winforms]Variables globales entre forms
    Par Hemophilius dans le forum C++/CLI
    Réponses: 8
    Dernier message: 26/10/2008, 11h13
  5. [langage] Probleme passage de variables entre modules
    Par Ludo167 dans le forum Langage
    Réponses: 4
    Dernier message: 13/08/2004, 12h25

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