假设我有一个这样的字符串。
string = "someString"
我现在想要使用存储在string中的变量创建一个say的新实例,一个dict()对象。我可以这样做吗?
string = dict()
希望它变成"someString = dict()"
。这是正确的吗?如果没有,我该怎么办?还在学习python。任何帮助将不胜感激。
答案 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)