可能重复:
Get object by id()?
>>> var = 'I need to be accessed by id!'
>>> address = id(var)
>>> print(address)
33003240
有没有办法在var
提供的内存中使用id()
的地址来访问var
的值?
UPD:
我还想说,如果这不能在标准Python中完成,那么它也会很有趣,如果这可以通过黑客攻击Python的C ++内部来实现。
UPD2:
同样有趣的是,如何更改 var
的价值。
答案 0 :(得分:8)
仅针对您的情况的解决方案是:
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)
但其他人指出:首先确保没有更好的解决方案更符合您的需求