Ich bin noch nicht sehr weit in Python und habe deshalb eine Verständnisfrage zu (globalen) Variablen. Gerne würde ich wissen ob ich eine Variable so nutzen kann, dass sie in allen Modulen verfügbar ist. Die Frage wird oft gestellt und offenbar auch viel per Suchmaschine gesucht, aber die Standardlösung (https://discuss.python.org/t/global-var ... ules/16833) greift nicht in allen Fällen.
Angenommen ich haben drei Dateien:
Haupt.py – hier wird Funk1() aus der Datei Funktion 1.py ausgeführt – eingebunden über
Code: Alles auswählen
"import Funktion1
(...)
funktion1.Funk1()"
Funk1() erzeugt (bspw. durch Webscraping) die variable X.
Funktion2.py
Funk2() soll mit Variable X weiterarbeiten, kann jedoch nicht auf X zugreifen. Wären alle Funktionen in der selben Datei (und wäre X als global definiert) wäre es kein Problem. In verschiedenen Modulen ist dies jedoch offenbar nicht möglich.
Die üblichen Lösungsvorschläge schlagen vor X in einem weiteren Modul zu speichern (z.B. config.py) und dann für alle anderen Dateien (Haupt.py, Funk1.py, usw.) per import verfügbar zu machen (import config (...) config.X). So wie ich das aber sehe, trifft dies nur auf Variablen zu, die schon vor Programmbeginn bekannt sind. Wenn ich richtig informiert bin, dann kann ich doch keine Variable die ich während der Laufzeit definiere in eine Variable einer externen .py Datei schreiben, oder?
Mein Workaround war bisher solche Variablen in eine txt zu schreiben und sie dann vom jeweiligen Modul wieder daraus laden zu lassen. Ich habe aber den Eindruck, dass das nicht die optimale und seriöse Art ist das Problem zu lösen.
Könnt ihr mir helfen? (Und bitte seid nachsichtig, ich lerne erst seit zwei Wochen).
Liebe Grüße!