Je suis un peu confus sur le fonctionnement des variables globales. J'ai un grand projet, avec environ 50 fichiers, et j'ai besoin de définir des variables globales pour tous ces fichiers.
Ce que j'ai fait était de les définir dans le fichier main.py
de mon projet, comme suit :
# ../monprojet/main.py
# Définir global myList
global myList
myList = []
# Imports
import subfile
# Faire quelque chose
subfile.stuff()
print(myList[0])
J'essaie d'utiliser myList
dans subfile.py
, comme suit
# ../monprojet/subfile.py
# Enregistrer "hey" dans myList
def stuff():
globals()["myList"].append("hey")
Une autre façon que j'ai essayée, mais qui n'a pas fonctionné non plus
# ../monprojet/main.py
# Import globfile
import globfile
# Enregistrer myList dans globfile
globfile.myList = []
# Import subfile
import subfile
# Faire quelque chose
subfile.stuff()
print(globfile.myList[0])
Et à l'intérieur de subfile.py
j'avais ceci :
# ../monprojet/subfile.py
# Import globfile
import globfile
# Enregistrer "hey" dans myList
def stuff():
globfile.myList.append("hey")
Mais encore une fois, ça n'a pas fonctionné. Comment devrais-je implémenter cela ? Je comprends que cela ne peut pas fonctionner comme ça, lorsque les deux fichiers ne se connaissent pas vraiment (enfin subfile ne connaît pas main), mais je ne vois pas comment le faire, sans utiliser l'écriture io ou pickle, ce que je ne veux pas faire.