ЕОФ, и в этой функции идёт разбор одного файла конфигурации. Нужно без тонны спагетти-кода как-то распаковать словарь типа {'one':'1', 'two':'2', 'three':'3', 'four':'4'} в локальные переменные в границах этой функции, причём некоторые параметры необязательны. Думал о функции, которая брала бы словарь обязательных аргументов, словарь необязательных и locals(), потом возвращала бы locals с добавленными параметрами, а затем этот
ваш возвращённый locals() можно было бы как-то поместить обратно. Типа:
def extract(locals_dict, args, opts, dictionary): #без ловли эксепшенов, просто для примера
entry_names = [entry['name'] for entry in dictionary]
for arg in args:
locals[arg] = dictionary[arg]
for opt in opts:
if opt in entry_names:
locals[opt] = dictionary[opt]
dictionary = config.parse()
print dictionary
#{'arg1':"value in config file with key 'arg1'", ...}
args = ['arg1', 'arg2', 'arg3']
opts = ['opt1', 'opt2', 'opt3']
new_locals = extract(locals(), args, opts, dictionary)
assign_locals(new_locals) #Вот насчёт этого я ничего не знаю =(
print arg1
#Печатает "value in config file with key 'arg1'"
Это возможно? Или мой вариант не по-Питоновски и в Питоне для этого другие методы?