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!

Respuestas a la pregunta(6)

Su respuesta a la pregunta