Python: Usando vars () para atribuir uma string a uma variável
Acho muito útil poder criar novas variáveis durante o tempo de execução e criar um dicionário dos resultados para processamento posterior, ou seja, gravar em um arquivo:
myDict = {}
for i in range (1,10):
temp = "variable"+str(i)
vars()[temp] = myFunctionThatReturnsData() # variable1= data1, variable2 = data2,etc.
myDict[temp] = vars(temp)
que cria a entrada de dicionário [result1: data1] que posso chamar com myDict [result1]. Eu tenho usado vars () sem realmente entender o que estou fazendo. eu levovars()
retorna um dicionário com as variáveis locais (?) e
vars () [x] = y
cria uma nova entrada de dicionário de [x: y]?
Eu tenho um script no qual passo em um dicionário preparado com {input1: data1, input2: data2} e uso esse método para percorrer todos os valores, armazenar todos os resultados e enviá-lo para um arquivo. Esse pedaço de código está dentro de uma função dentro de uma classe e está funcionando.
Minha fonte de confusão é que li várias postagens sobre como os habitantes locais () não devem ser mexidos e como vars () é equivalente (?) A habitantes locais () ou globais () ..
Então, minha pergunta é (pelo menos) dupla:
1.O que exatamente vars (), ou em particular, vars () [x] = y,
2.Qual é o escopo deste dicionário (o que eu preciso ter em mente ao escrever programas maiores
3.Se essa é uma boa prática de programação.
Desde já, obrigado!