Мне очень полезно иметь возможность создавать новые переменные во время выполнения и создавать словарь результатов для последующей обработки, т.е. записывать в файл:
myDict = {}
for i in range (1,10):
temp = "variable"+str(i)
vars()[temp] = myFunctionThatReturnsData() # variable1= data1, variable2 = data2,etc.
myDict[temp] = vars(temp)
который создает запись словаря [result1: data1], которую я могу вызвать с myDict [result1]. Я использую vars(), не понимая, что я делаю. Я принимаю его vars()
возвращает словарь с локальными переменными (?) И
vars() [x] = y
создает новую запись словаря [x: y]?
У меня есть script, где я передаю словарь, подготовленный с помощью {input1: data1, input2: data2}, и я использую этот метод для итерации по всем значениям, сохранения всех результатов и вывода их в файл, Этот бит кода находится внутри функции внутри класса и работает.
Мой источник недоразумений заключается в том, что я читал разные сообщения о том, как нельзя смириться с locals() и как vars() эквивалентен (?) locals() или globals()..
Итак, мой вопрос (по крайней мере) в два раза:
1.Что именно делает vars(), или, в частности, vars() [x] = y do,
2.Какой объем этого словаря (что мне нужно иметь в виду, когда пишу большие программы
3. Хорошая практика программирования.
Спасибо заранее!