Возможный дубликат:
Получить объект по id ()?
>>> var = 'I need to be accessed by id!'
>>> address = id(var)
>>> print(address)
33003240
Есть ли способ использовать адрес var
в памяти, предоставленный id()
, для доступа к значению var
?
UPD:
Я также хочу сказать, что если это невозможно сделать в стандартном Python, было бы также интересно, если бы это каким-то образом можно было реализовать путем взлома C ++ внутренностей Python.
UPD2: Также было бы интересно узнать, как изменить значение var
.
id()
не является ссылкой. Тот факт, что cpython здесь возвращает адрес памяти, является деталью реализации, и использование его в качестве ссылки не является целью функции. - person Martijn Pieters   schedule 10.01.2013id
объекта у вас должна быть ссылка на имя, чтобы сделать это ... Итак, в этот момент просто держите имя висящим, а не какую-то запутанную информацию. прямой способ вернуть его ... - person Jon Clements♦   schedule 10.01.2013{id(v):v for k,v in globals().iteritems()}
- person root   schedule 10.01.2013id()
возвращает адрес данных, на которые указывает переменная Python. В Python все переменные - это просто скрытые указатели. - person Gill Bates   schedule 26.01.2013