Когда вы запускаете этот код:
def foo():
locals().update({'bar': 12})
print locals()
bar = locals()['bar']
Вывод:
Первый {}
печатается
И тогда мы получим KeyError
Итак, я предполагаю, что ваш locals
не обновляется, когда вы пытаетесь присвоить значение переменной (bar = locals()['bar']
). Но он отлично работает в первом случае, потому что вы не выполняете никаких заданий.
Редактировать 1 :
Я просмотрел вашу ссылку на github и предложил бы вам использовать dict
вместо locals
. Например,
def base_config():
return dict(num_epochs=50, bath_size=200, gradient_clipping=100.0)