9

可能重复:
通过 id() 获取对象?

>>> var = 'I need to be accessed by id!'
>>> address = id(var)
>>> print(address)
33003240

有没有办法使用var由 提供的内存中的地址id()来访问 的值var

UPD:
我还想说,如果这不能在标准 Python 中完成,那么如果这可以通过破解 Python 的 C++ 内部结构以某种方式实现,那也会很有趣。

UPD2:知道 如何更改.var

4

1 回答 1

9

仅针对您的情况的解决方案是:

var = 'I need to be accessed by id!'
address = id(var)
print(address)
var2 = [x for x in globals().values() if id(x)==address]

它也可以在函数内部工作,例如

def get_by_address(address):
    return [x for x in globals().values() if id(x)==address]

var = 'I need to be accessed by id!'
address = id(var)
print(address)
var2 = get_by_address(address)

但正如其他人指出的那样:首先确保没有更好的解决方案更适合您的需求

于 2013-01-10T12:06:13.960 回答