Возможный дубликат: Как сделать переменные переменными в Python?
У меня есть переменная со строкой, назначенной ей, и я хочу определить новую переменную на основе этой строки.
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'
Но, поскольку вы должны сообщить объекту, чтобы получить новую переменную, я думаю, что это работает только внутри классов.