Seite 1 von 1

Programmkonfiguration Best Practices

Verfasst: Mittwoch 17. März 2021, 09:25
von sfx2k
Hallo zusammen,

bisher habe ich es bei meinen Skripten so gehandhabt, dass ich Konfigurationselemente in ein globales Dictionary meines Scriptes gepackt habe und dann in jeder Funktion meines Scriptes darauf zugreifen kann.
Jetzt wollte ich es mal mit einer Konfigurationsdatei probieren und habe gemerkt, dass das einfacher gedacht war, als ich es in der Lage bin, umzusetzen.

Ich habe natürlich viele Beispiele gefunden, wie ich meine Infos in json, yaml und ini-Dateien ablegen und auch einlesen kann. Allerdings immer nur in Scripten, die aus einer einzigen Funktion bestehen.
Wie aber kann ich diese Informationen über mehrere Funktionen meines Scriptes (oder auch über mehrere Dateien) hinweg nutzen, ohne eine globale Variable zu nutzen, ohne die Datei immer wieder neu einzulesen und ohne die Config per Argument immer weiter zu reichen? Oder denke ich da falsch und ohne irgendetwas 'globales' geht es gar nicht?

Wie macht man das pythonic?

Danke und Gruß

Re: Programmkonfiguration Best Practices

Verfasst: Mittwoch 17. März 2021, 09:40
von __blackjack__
@sfx2k: Das lässt sich nicht so einfach beantworten. Am besten schaut man erst einmal was denn davon tatsächlich überall verfügbar sein muss, also ob man wirklich die gesamte Konfiguration überall herumreichen muss. Alles was dann übrig bleibt was letztlich so etwas wie ”anpassbare Konstanten” sind, kann man dann "global" verfügbar machen. Aber das eventuell auch über eine cachende Funktion oder ein Singleton, damit man da noch eingreifen könnte.

Re: Programmkonfiguration Best Practices

Verfasst: Mittwoch 17. März 2021, 09:50
von sfx2k
Hallo blackjack,
__blackjack__ hat geschrieben: Mittwoch 17. März 2021, 09:40 @sfx2k: Das lässt sich nicht so einfach beantworten. Am besten schaut man erst einmal was denn davon tatsächlich überall verfügbar sein muss, also ob man wirklich die gesamte Konfiguration überall herumreichen muss. Alles was dann übrig bleibt was letztlich so etwas wie ”anpassbare Konstanten” sind, kann man dann "global" verfügbar machen. Aber das eventuell auch über eine cachende Funktion oder ein Singleton, damit man da noch eingreifen könnte.
also lag ich gar nicht so falsch mit meiner Annahme, dass es nicht so einfach ist und ggf. doch etwas globales her muss.
Danke Dir.

Gruß