使用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,我认为这只能在类内工作。