Прежде всего, использование словаря или подобной структуры — это не то, что мне нужно. Я хочу установить значение переменной!
Пример;
Код: Выделить всё
def test_my_var(name_param, val):
# Set initial values for each variable
my_var_1 = -1
my_var_2 = -1
my_var_3 = -1
...
my_var_n = -1
# Now I will update the value of mth variable
my_var_%{name_param}s = val # Of course this will not work!!
# Now print the new value of this variable
print my_var_%{name_param}s
Я не хочу хранить свои переменные в dict или подобной структуре. Это локальные переменные внутри функции, и они должны оставаться такими, какие они есть.
Я не предпочитаю использовать exec, поскольку он выполняет любую отправленную команду! Таким образом, приведенный ниже вариант не является хорошим и недействительным.
Код: Выделить всё
def test_case(index, val):
var_1 = -1
var_2 = -1
exec("var_%s" = %s % (index, val))
print eval("var_%s" % index)
Код: Выделить всё
def test_case(index, val):
val_1 = -1
val_2 = -1
print locals()["val_%s" % index]
locals()["val_%s" % index] = val
print val_1, val_2 # That will not update the calue of the variable `val_1` or any other variable
Подробнее здесь: https://stackoverflow.com/questions/324 ... essed-as-a
Мобильная версия