Я хочу знать, возможно ли обрабатывать переменные через словарь.
Пример:
global MyVar
...
MyVar = 0xFFFF
d={"MyVar":MyVar}
def ChangeVar (var_to_change, value)
d[var_to_change] = value #I know this code assigns a new value to the key...
...
ChangeVar("MyVar",25)
...
Я хочу использовать словарь, чтобы "выбрать", какую переменную я буду изменять.Я всегда могу использовать массив, но я хочу знать, возможно ли это сделать.Я не очень много знаю об указателях в Python.
В C было бы что-то вроде этого (возможно, я написал дополнительный или пропустил '*'):
int MyCVar = 0;
int MyCVar2 = 0;
int *MyD[] = {&MyCVar,&MyCVar2};
...
*(MyD[index]) = some_value;
Я надеюсь, что выпонять, что я пытаюсь объяснить.
Спасибо,
Джонатан
РЕДАКТИРОВАТЬ: Спасибо всем за ваши ответы.То, что я пытался сделать, было довольно сложно, так как python обрабатывает имена и объекты совершенно по-разному.То, что я сделал, было примерно так:
class mytype(object):
def __init__(self,name=""):
self.__Name = name
....
myDict[name] = self
, тогда я могу получить доступ ко всем объектам, используя Name переменной.Это поведение, которое я пытался объяснить в первом примере.И вот как я получу доступ к этим объектам.
myDict["MyVar"].Value = 1
Спасибо всем, ваши ответы дали несколько хороших идей.