25 Stimmen

Python: Mit vars() eine Zeichenkette einer Variablen zuweisen

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!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X