Создание переменных из строк в Python - PullRequest
1 голос
/ 27 сентября 2010

Возможно ли что-то вроде следующего в Python:

>>> vars = {'a': 5}
>>> makevars(vars)
>>> print a
5

Итак, makevars преобразует словарь в переменные. (Как это вообще называется?)

Ответы [ 2 ]

9 голосов
/ 27 сентября 2010

Иногда это возможно, но обычно это очень плохая идея. Несмотря на свое имя, переменные сами по себе не должны быть переменными. Они часть вашего кода, часть его логики. Попытка «заменить» локальные переменные таким образом делает код неэффективным (так как Python должен отбросить некоторые из его оптимизаций), ошибочным (так как он может случайно заменить то, чего вы не ожидали), очень трудно отладить (так как вы не можете видеть что происходит) и просто не читается. Наличие «динамических значений» - это то, для чего нужны диктовки, списки и другие контейнеры.

1 голос
/ 27 сентября 2010

Я думаю, что это работает:

locals().update(vars)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...