Итеративно конвертировать словарь в набор глобальных переменных - PullRequest
1 голос
/ 06 марта 2019

Я хотел бы итеративно преобразовать словарь в соответствующие глобальные переменные, как показано ниже:

# starting dictionary
parameters = {
    'a': 3,
    'b': 4
}

# result
a = 3
b = 4

теперь я хорошо знаю предостережения, связанные с глобальными переменными: это не означает, что это «производственное» решение, а скорее способ использования существующей существующей базы кода для целей оптимизации без осуществления серьезной реструктуризации.

есть идеи?

Ответы [ 2 ]

3 голосов
/ 06 марта 2019

Вы можете использовать местных жителей:

locals().update({'test': 2})

Результаты:

>>test
>>2
1 голос
/ 06 марта 2019
# starting dictionary
parameters = {
    'a': 3,
    'b': 4
}

locals().update(parameters)
print(a)
print(b)

OUTPUT

3
4

OR

a, b = parameters['a'], parameters['b']

OR

Рассмотрим альтернативу Bunch: :

class Bunch(object):
    def __init__(self, parameters):
        self.__dict__.update(parameters)

parameters = {
    'a': 3,
    'b': 4
}
vars = Bunch(parameters)
print(vars.a, vars.b)

OUTPUT

3 4
...