使用字符串的值作为变量名

时间:2014-02-20 01:35:53

标签: python string dictionary

假设我有一个这样的字符串。

string = "someString"

我现在想要使用存储在string中的变量创建一个say的新实例,一个dict()对象。我可以这样做吗?

string = dict()

希望它变成"someString = dict()"。这是正确的吗?如果没有,我该怎么办?还在学习python。任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:2)

是的,可能这样做,虽然它被认为是糟糕的事情:

string = 'someString'
globals()[string] = dict()

相反,你应该做类似的事情:

my_dynamic_vars = dict()
string = 'someString'

my_dynamic_vars.update({string: dict()})

然后my_dynamic_vars[string]dict()

答案 1 :(得分:1)

你真的不应该这样做,但如果你真的想,你可以使用exec()

对于您的示例,您将使用此:

exec(string + " = dict()")

这会通过任何字符串的名称为变量分配一个新字典。

答案 2 :(得分:1)

使用黑魔法,那种将你发送到地狱的地狱,这是可能的。

例如,globals()locals()函数将为您提供包含当前作为(键,值)条目的变量的字典。当可以尝试编辑这些词典时,结果有时是不可预测的,有时是不正确的,总是是不可取的。

所以没有。无法使用非显式名称创建变量。

答案 3 :(得分:1)

如果要设置的变量位于对象内,则可以使用setattr(instance,'variable_name',value)