157

可能重复:
如何在 Python 中做变量变量?

我有一个分配有字符串的变量,我想根据该字符串定义一个新变量。

foo = "bar"
foo = "something else"   

# What I actually want is:

bar = "something else"
4

3 回答 3

256

您可以exec为此使用:

>>> foo = "bar"
>>> exec(foo + " = 'something else'")
>>> print bar
something else
>>> 
于 2012-07-19T04:01:42.813 回答
158

使用字典会更快乐:

my_data = {}
foo = "hello"
my_data[foo] = "goodbye"
assert my_data["hello"] == "goodbye"
于 2012-07-19T04:05:05.813 回答
111

您可以使用setattr

name  = 'varname'
value = 'something'

setattr(self, name, value) #equivalent to: self.varname= 'something'

print (self.varname)
#will print 'something'

但是,由于您应该通知对象接收新变量,因此这只适用于类或模块。

于 2012-07-19T04:10:16.890 回答