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

时间:2012-07-19 03:58:16

标签: python

  

可能重复:
  How do I do variable variables in Python?

我有一个带有字符串的变量,我希望根据该字符串定义一个新变量。

foo = "bar"
foo = "something else"   

# What I actually want is:

bar = "something else"

3 个答案:

答案 0 :(得分:158)

您可以使用exec

>>> foo = "bar"
>>> exec(foo + " = 'something else'")
>>> print bar
something else
>>> 

答案 1 :(得分:118)

你会更乐意使用字典:

my_data = {}
foo = "hello"
my_data[foo] = "goodbye"
assert my_data["hello"] == "goodbye"

答案 2 :(得分:74)

您可以使用setattr

name  = 'varname'
value = 'something'

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

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

但是,既然你应该通知一个对象接收新的变量,我认为这只适用于类。