Übergreifende/Globale Variable in Python?

1 Antwort

Globale Variablen sind allgemein eher schlechter Stil, da es schnell unkontrollierte Seiteneffekte gibt.

Das einfachste wäre deiner Bibliothek eine Methode zu spendieren die die relevante Variable auf den übergebenen Wert umsetzt.

Ansonsten ist der Standard-Weg ein drittes Modul global.py zu schaffen, das dann von main und deinem Modul importiert wird, siehe https://docs.python.org/3/faq/programming.html#how-do-i-share-global-variables-across-modules

Das Haupt-Problem an deiner Text-Lösung ist nicht der absolut vernachlässigbare Verschleiß der SD-Karte, sondern das selbst auf SD-Karten File IO sehr langsam ist im Vergleich zum RAM oder Prozessor-nahem Speicher.

internetzer09 
Fragesteller
 19.11.2019, 22:07

Vielen Dank, hätte nicht mit so einer schnellen Antwort gerechnet.^^

Zur Info: Mein Programm liest Sensordaten aus, dazu wird eben diese Bibliothek benötigt. Da ich mehrere Sensoren mit der gleichen I2C Adresse verwende, muss ich auch die 2 I2C Kanäle des Raspi's verwenden. Um die beiden Sensoren auszuwerten, muss ich also dauerhaft zwischen den Bus-Kanälen wechseln (Bus 1 und Bus 0). Ich könnte alternativ auch einfach die Bibliothek kopieren und diesen Wert austauschen, dass dann das Main-Programm quasi beide Bibliotheken sequentiell durchläuft. Habe da allerdings auch Bedenken, da diese Library über 800 Zeilen Code umfasst und wenn diese immer 2x "durchforstet" wird, was auch alles ziemlich verlangdamt.

Sonst müsste ich alternativ das Problem mittels Hardware lösen, in dem ich einen i2c Multiplexer verwende.

0