Je suis un peu confus quant au fonctionnement des variables globales. J'ai un grand projet, avec environ 50 fichiers, et je dois définir des variables globales pour tous ces fichiers.
Ce que j'ai fait, c'est de les définir dans mon main.py
fichier de projets , comme suit:
# ../myproject/main.py
# Define global myList
global myList
myList = []
# Imports
import subfile
# Do something
subfile.stuff()
print(myList[0])
J'essaie d'utiliser myList
dans subfile.py
, comme suit
# ../myproject/subfile.py
# Save "hey" into myList
def stuff():
globals()["myList"].append("hey")
Une autre façon j'ai essayé, mais ça n'a pas marché non plus
# ../myproject/main.py
# Import globfile
import globfile
# Save myList into globfile
globfile.myList = []
# Import subfile
import subfile
# Do something
subfile.stuff()
print(globfile.myList[0])
Et à l'intérieur subfile.py
j'avais ceci:
# ../myproject/subfile.py
# Import globfile
import globfile
# Save "hey" into myList
def stuff():
globfile.myList.append("hey")
Mais encore une fois, cela n'a pas fonctionné. Comment dois-je mettre cela en œuvre? Je comprends que cela ne peut pas fonctionner comme ça, quand les deux fichiers ne se connaissent pas vraiment (enfin le sous-fichier ne sait pas principal), mais je ne peux pas penser à comment le faire, sans utiliser l'écriture io ou le pickle, qui Je ne veux pas faire.