Рассмотрим следующий пример:
i=7
j=8
k=10
def test():
i=1
j=2
k=3
return dict((name,eval(name)) for name in ['i','j','k'])
Он возвращает:
>>> test()
{'i': 7, 'k': 10, 'j': 8}
Почему eval не принимает во внимание переменные, определенные внутри функции? Из документации вы можете передать глобальные и локальные словари. Что это значит? Наконец, как я могу изменить этот маленький случай, чтобы он работал?