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 :

une seule et uniqe variable qui pose probleme alors que pas les autres!


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 26
    Points : 24
    Points
    24
    Par défaut une seule et uniqe variable qui pose probleme alors que pas les autres!
    bonjour,

    j'ai déja posté récemment pour un probleme de variables globales :
    je narivé pa a lé modifié mé peu importe car vous mavié aidé sur le forum!

    mintenan, j'ai créé un module de toutes mes variable globales, que j'importe dans les modules nécessaire comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    import varGlob
    def initCom1():
             varGlob.com1=0
             return varGlob.com1
    J'arrive a toutes y avoir acces ou les modifier comme je le souhaite sauf une (que jappelle "a")!
    je ne vois vraiment pa pourquoi! car je peu y avoir acces dans tous lé module (y compri le principal), je peu la modifier dans les modules de fonction que j'ai crées, mais quand j utilise les dites fonction dans le module principal, pour modifier "a", l'interpreteur dit que la variable "a" n'est pa définie! pourtant il n'y a aucun probleme de synthaxe : j'ai bien écrit "varGlob.a" dans les fonctions é toutes les autres variables, je le répete, ne posent aucn probleme!!

    Une idée??
    MERCI!

  2. #2
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Premièrement, évite les variables globales. Ça cause 10x plus problèmes que ça n'en résout.

    Deuxièment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import varGlob
    def initCom1():
             global varGlob.com1
             varGlob.com1=0
             return varGlob.com1

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2008
    Messages : 26
    Points : 24
    Points
    24
    Par défaut certes...
    certes, il est mieux d'éviter les variables globales, mais dans le cadre d(un jeu c'est pas facile (par exemple jeu de belotte, la variable globale semble la plus logique pour traduire le contenu des mains des joueurs!...)
    De plus, 'global module.var' crée une erreur! ce n'est pas la solution!
    Merci quan mem!

    Donc pour conclure : aidez moi encore SVP!

  4. #4
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2007
    Messages
    4 176
    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 176
    Points : 8 669
    Points
    8 669
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je viens de faire l'essai:

    1- création d'un module varGlob.py qui ne contient que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    a = None
    toto = None
    2- création d'un programme:

    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
     
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    import varGlob
     
    def init_a():
        varGlob.a = 0
        return varGlob.a
     
    def init_toto():
        varGlob.toto = 0
        return varGlob.toto
     
    print init_a(), init_toto()  #  affiche bien "0 0"
    print varGlob.a, varGlob.toto  #  affiche aussi "0 0"
    Conclusion: la variable globale "a" est aussi accessible que les autres. Tu as un autre problème dans ton code. Donne plus d'infos.

    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: 4
    Dernier message: 07/05/2013, 12h27
  2. Réponses: 8
    Dernier message: 23/09/2008, 11h20
  3. [MySQL] preg_replace qui pose probleme
    Par Stopher dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/12/2007, 14h11
  4. calcul d'un champ qui pose probleme
    Par EGSway dans le forum IHM
    Réponses: 9
    Dernier message: 28/06/2007, 18h26
  5. SpinEdit OnChange qui pose probleme.
    Par starkson dans le forum Delphi
    Réponses: 3
    Dernier message: 03/09/2006, 00h45

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