CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Utilisation des globals

Whataburger
Whataburger
Niveau 10
05 août 2014 à 11:40:09

Salut à tous :) ,

je débute en python et j'ai une question assez simple concernant les variables en global. Je suppose que la réponse est quelque part sur internet, mais je n'ai pas réussi à trouver.

Si je run le module suivant (la fonction est indentée correctement) :

***

original = 5

def set0():
global var
var = 0
print (var)

set0()
print (var)

***

Le résultat est le suivant : 0 0.
C'est normal puisque la fonction se lance, elle modifie la variable en global, elle print var (qui vaut alors 0), puis quand je print var de nouveau en dehors de la fonction elle vaut toujours 0 puisqu'elle a été modifiée en global. Tout va bien, donc.

Je souhaiterais maintenant arriver au même résultat, mais en déclarant la fonction set0 dans un autre module.
Mon main est comme ça :

***

from function_test import *

var = 5

set0()
print (original)

***

et le module appelé function_test, est comme ça :

***

def set0():
global var
var = 0
print (var)

***

Contrairement au premier exemple, le résultat retourné n'est pas 0 0 mais 0 5. Ce qui signifie que quand j'ai appelé ma fonction, elle a pris var, elle l'a modifié, elle l'affiche valant 0, mais var n'a pas été modifié "globalement"...

Quelqu'un pourrait-il m'aider s'il vous plaît (où me rediriger vers une page qui explique ça et que je n'ai pas trouvée :( ).

Merci ! :)

vava740
vava740
Niveau 10
05 août 2014 à 20:01:43

Chaque module a un "contexte" différent, ce qui fait qu'une variable globale dans un module n'est pas la même que dans le code qui appelle ce module.

Pour vérifier ça, tu peux faire :

import function_test

set0()
print(function_test.var)

Plus d'infos ici : https://docs.python.org/3/tutorial/modules.html#more-on-modules

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment