@Art0005

Можно ли в словаре хранить ссылку на хранение?

Мне нужно чтоб через определенный ключ я мог обращаться к объекту который находится под этим ключем и изменять сам объект(не значение ключа, значением останется та же ссылка на этот объект).Тоесть например чтоб dict[1] приводил меня к переменной и чтоб я мог менять саму переменную. Возможно ли это и как?
Мне нужно имея ключ словаря изменить содержание значения этого ключа
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
@PavelMos
На stackexachange предлагают делать через функцию - в словаре в значение ключа для каждой переменной своя функция, которая просто возвращает переменную. Обращаться к значению в словаре нужно будет с добавлением () после

def ret_a():
    return a
a='xxx'
ret_a()
Out[161]: 'xxx'
a='zzz'
ret_a()
Out[163]: 'zzz'
d={'a':ret_a}
d['a']()
Out[164]: 'zzz'
a='bbb'
d['a']()
Out[166]: 'bbb'


Если сделать просто универсальную функцию def f(x): return(x), то сама она будет корректно возвращать текущее значение переменной, но через словарь значение изменяться не будет:
def ret(a):
    return(a)
b=1000
ret(b)
Out[175]: 1000
d2={'a':ret(b)}
d2
Out[180]: {'a': 1000}
b=9999
ret(b)
Out[182]: 9999
d2
Out[183]: {'a': 1000}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
SoreMix
@SoreMix
yellow
Можете создать свой класс, и в нем хранить значение, по другому не получится вроде
Ответ написан
@bacon
Ну так это стандартное поведение, не понятно в чем проблема?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы