Ich finde es sehr nützlich, während der Laufzeit neue Variablen zu erstellen und ein Wörterbuch der Ergebnisse für die spätere Verarbeitung, d. h. das Schreiben in eine Datei, zu erstellen:
myDict = {}
for i in range (1,10):
temp = "variable"+str(i)
vars()[temp] = myFunctionThatReturnsData() # variable1= data1, variable2 = data2,etc.
myDict[temp] = vars(temp)
die den Wörterbucheintrag [result1:data1] erstellt, den ich mit myDict[result1] aufrufen kann. Ich habe vars() verwendet, ohne wirklich zu verstehen, was ich da tue. Ich nehme es an vars()
gibt ein Wörterbuch mit den lokalen Variablen(?) zurück, und
vars()[x] = y
erstellt einen neuen Wörterbucheintrag von [x:y] ?
Ich habe ein Skript, wo ich in einem Wörterbuch mit {input1:data1, input2:data2} vorbereitet übergeben, und ich verwende diese Methode, um durch alle Werte zu iterieren, speichern Sie alle Ergebnisse, und geben Sie es in eine Datei. Dieser Teil des Codes befindet sich in einer Funktion innerhalb einer Klasse und funktioniert.
Meine Quelle der Verwirrung ist, dass ich verschiedene Beiträge darüber gelesen habe, wie locals() nicht durcheinander gebracht werden sollte, und wie vars() äquivalent(?) zu locals() oder globals(). ist.
Meine Frage ist also (mindestens) zweigeteilt:
1. was genau macht vars(), oder insbesondere vars()[x] = y,
2. welchen Umfang dieses Wörterbuch hat (was ich beim Schreiben größerer Programme beachten muss)
3. ob dies eine gute Programmierpraxis ist.
Vielen Dank im Voraus!