使用stringvariables作为variables名称

可能重复:
我如何在Python中做variablesvariables?

我有一个string分配给它的variables,我想定义一个新的variables基于该string。

foo = "bar" foo = "something else" # What I actually want is: bar = "something else" 

你可以使用exec

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

用字典代替你会更快乐:

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

你可以使用setattr

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

但是,既然你应该通知一个对象来接收新的variables,我认为这只能在类内工作。