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 et import de fichiers [Python 3.X]


Sujet :

Python

  1. #1
    Membre émérite Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Par défaut Variable globale et import de fichiers
    Bonjour.
    J'ai le pb suivant :
    dans un fichier principal main.py, je déclare et initialise une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     globalVariable = 'variable globale'
    Si je crée dans le fichier principal une fonction maFonction() à l'intérieur de laquelle je déclare
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    global globalVariable
    print(globalVariable)
    , tout ce passe bien à l'appel de cette fonction dans la suite du fichier principal.
    En revanche, si je ne déclare pas la fonction maFonction() dans le main.py, mais dans un second fichier fich_2.py que j'importe avec la fonction maFonction() s'éxécute correctement jusqu'à la ligne qui emploie globalVariable (le print) et renvoie alors
    NameError: name 'globalVariable' is not defined
    Pourtant, les autres fonctions de mon fichier fich_2.py, qui n'ont pas de variables déclarées globales, s'éxécutent sans pb dans le main.py.
    Je suis un peu perdu ...

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

    Citation Envoyé par ypcman Voir le message
    Je suis un peu perdu ...
    Contrairement à ce que le nom "global" fait croire, la portée d'une variable globale se limite au module/script dans lequel elle est déclarée. Pour trouver comment "faire avec", regardez ce que suggère la FAQ Python.

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

  3. #3
    Membre émérite Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Par défaut
    Effectivement, ça devient logique car il s'agit de variables globales "seulement" au sein du script dans lequel elles sont déclarées !
    Merci pour le lien

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

Discussions similaires

  1. [PHP 5.0] appel d'une variable global dans un autre fichier à partir d'une classe
    Par andry.aime dans le forum Langage
    Réponses: 1
    Dernier message: 13/01/2009, 09h31
  2. variable globale et fonctions du fichier views
    Par jtadjo dans le forum Django
    Réponses: 1
    Dernier message: 03/03/2008, 12h38
  3. Réponses: 18
    Dernier message: 31/05/2006, 17h48
  4. Réponses: 6
    Dernier message: 19/01/2006, 22h52
  5. Variables globales dans fichiers entête
    Par benj_f04 dans le forum C++
    Réponses: 5
    Dernier message: 13/08/2004, 09h06

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