Python: uso de vars () para asignar una cadena a una variable
Me resulta muy útil poder crear nuevas variables durante el tiempo de ejecución y crear un diccionario de los resultados para su procesamiento posterior, es decir, escribir en un archivo:
myDict = {}
for i in range (1,10):
temp = "variable"+str(i)
vars()[temp] = myFunctionThatReturnsData() # variable1= data1, variable2 = data2,etc.
myDict[temp] = vars(temp)
que crea la entrada del diccionario [resultado1: datos1] que puedo llamar con myDict [resultado1]. He estado usando vars () sin entender realmente lo que estoy haciendo. lo tomovars()
devuelve un diccionario con las variables locales (?) y
vars () [x] = y
crea una nueva entrada de diccionario de [x: y]?
Tengo un script donde paso un diccionario preparado con {input1: data1, input2: data2}, y uso este método para recorrer todos los valores, almacenar todos los resultados y enviarlos a un archivo. Este bit de código está dentro de una función dentro de una clase y está funcionando.
Mi fuente de confusión es que he leído varias publicaciones sobre cómo no se debe molestar a los locales (), y cómo vars () es equivalente (?) A los locales () o globales () ...
Entonces mi pregunta es (al menos) doble:
1. ¿Qué hace exactamente vars (), o en particular, vars () [x] = y do,
2. Cuál es el alcance de este diccionario (lo que debo tener en cuenta al escribir programas más grandes
3. Si esta es una buena práctica de programación.
¡Gracias por adelantado!