如何通过ID访问变量?[重复]


问题内容

这个问题已经在这里有了答案

7年前关闭。

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

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

有什么方法可以使用所var提供的内存中的地址id()来访问的值var

UPD:
我也想说,如果这不能通过标准的Python来实现,那么如果可以通过破解Python的C ++内部实现这一点也很有趣。

UPD2: 知道如何 更改的 值也很有趣var


问题答案:

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

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)

但正如其他人指出的那样: 首先,请确保没有更好的解决方案可以更好地满足您的需求