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 ! 