Ich bin etwas verwirrt darüber, wie die globalen Variablen funktionieren. Ich habe ein großes Projekt mit ungefähr 50 Dateien und ich muss globale Variablen für all diese Dateien definieren.Globale Variablen zwischen Dateien verwenden?
Was ich tat, war sie in meinen Projekten main.py
Datei definieren, wie folgend:
# ../myproject/main.py
# Define global myList
global myList
myList = []
# Imports
import subfile
# Do something
subfile.stuff()
print(myList[0])
Ich versuche myList
in subfile.py
zu verwenden, wie folgende
# ../myproject/subfile.py
# Save "hey" into myList
def stuff():
globals()["myList"].append("hey")
Eine andere Art, wie ich versucht, aber hat auch nicht funktioniert
# ../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])
Und innen subfile.py
Ich hatte dies:
# ../myproject/subfile.py
# Import globfile
import globfile
# Save "hey" into myList
def stuff():
globfile.myList.append("hey")
Aber noch einmal, es hat nicht funktioniert. Wie soll ich das umsetzen? Ich verstehe, dass es so nicht funktionieren kann, wenn sich die beiden Dateien nicht wirklich kennen (naja Subdatei weiß man nicht), aber ich kann mir nicht vorstellen, wie ich es machen soll, ohne io schreiben oder beizen zu müssen, was Ich will es nicht tun.
Eigentlich funktioniert Ihr zweiter Ansatz gut für mich. main.py druckt "hey" korrekt aus. Kannst du genauer sagen, was du mir durch "es hat nicht funktioniert"? – rodion
@rodion: Importieren von Zyklen - der Code in der Subdatei versucht, globfile zu importieren, die sich in sich selbst importiert – jsbueno
'NameError: Name 'myList' ist nicht definiert 'aus' main.py' Zeile 'print (globfile.myList [0 ]) ' –