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 :

déclaration d'une variable global


Sujet :

Python

  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Points : 266
    Points
    266
    Par défaut déclaration d'une variable global
    Voilà j'ai une variable de type entier qui est lue à l'intérieur d'une fonction.
    Seulement, une fois que j'ai lu la variable je voudrais pouvoir l'utiliser dans toutes les autres fonctions ainsi que dans le main.

    Je sais qu'on peut écrire: "global maVariable" en python.
    Mais où dois-je alors la déclarer? Tout au début? dans mon main? ou dans la fonction qui la lit?

    merci

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Points : 923
    Points
    923
    Par défaut
    Pour lire la variable, tu n'as besoin de rien, par contre pour changer sa valeur à l'intérieur d'une fonction, il faut global mavar au début du corps de la fonction

  3. #3
    Membre éclairé Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Points : 844
    Points
    844
    Avant de poster un message .
    Quand vous avez la réponse à votre question, n'oubliez pas de cliquer sur .

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 30
    Points : 28
    Points
    28
    Par défaut
    Sauf erreur de ma part, il faut initialisée ta variable dans ton MAIN, ensuite pour pouvoir la modifier dans une fonction, utiliser global pour dire à ta fonction qu'il sagit de la variable globale précedement initialisée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    def init():
    	global myVar
    	myVar = 1
     
    if __name__=="__main__":
    	myVar = 0
    	print myVar	# 0
    	init()
    	print myVar	# 1

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Points : 923
    Points
    923
    Par défaut
    Absolument pas, dans la mesure où ton "main" est un bloc de code (indenté), ta variable n'est pas globale. Pour qu'elle soit globale il faut que tu lui donnes une valeur de départ au début de ton fichier

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 30
    Points : 28
    Points
    28
    Par défaut
    Pourtant le code ci-dessus fonctionne.
    Je le pensais strictement equivalent à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    def init():
    	global myVar
    	myVar = 1
     
    myVar = 0
    print myVar	# 0
    init()
    print myVar	# 1

  7. #7
    Membre éclairé Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Points : 844
    Points
    844
    Par défaut
    Dans l'exemple qui est donné, myVar est globale.

    Pour que myVar soit locale il aurait fallu : soit une définition de fonction, soit une définition de classe. Mais aucunement une condition if.

    Edit par Guigui_: Merci de rester courtois
    Avant de poster un message .
    Quand vous avez la réponse à votre question, n'oubliez pas de cliquer sur .

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

Discussions similaires

  1. [XL-2007] erreur de déclaration sur une variable globale
    Par romca dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/08/2010, 20h22
  2. Déclaration d'une variable Globale
    Par peregna2007 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 16/07/2008, 11h24
  3. Réponses: 5
    Dernier message: 25/05/2005, 22h29
  4. Comment déclarer une variable globale
    Par davkick dans le forum C
    Réponses: 13
    Dernier message: 20/05/2005, 18h50
  5. utilisation d'une variable globale
    Par ZZ dans le forum ASP
    Réponses: 3
    Dernier message: 03/12/2003, 19h11

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