迭代地将字典转换为全局变量集

问题描述 投票:1回答:2

我想迭代地将字典转换为匹配的全局变量,如下所示:

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

# result
a = 3
b = 4

现在我非常清楚与全局变量相关的警告:这并不是一个“生产”解决方案,而是一种在没有实施大量重组的情况下将大量现有代码库用于优化目的的方法。

有任何想法吗?

python global-variables global
2个回答
1
投票
# starting dictionary
parameters = {
    'a': 3,
    'b': 4
}

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

OUTPUT:

3
4

要么

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

要么

Consider the Bunch alternative:

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

3
投票

你可以使用当地人:

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

结果:

>>test
>>2
© www.soinside.com 2019 - 2024. All rights reserved.