您可以取消引用从idPython中的函数检索的变量ID 吗?例如:dereference(id(a)) == a我想从学术角度了解;我了解还有更实用的方法。
3 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
这是一个实用程序函数,该函数基于“ Tiran”在Hophat Abc所引用的讨论中提出的评论,该评论将在Python 2和3中都适用:
import _ctypes
def di(obj_id):
""" Inverse of id() function. """
return _ctypes.PyObj_FromPtr(obj_id)
if __name__ == '__main__':
a = 42
b = 'answer'
print(di(id(a))) # -> 42
print(di(id(b))) # -> answer
回首忆惘然
TA贡献1847条经验 获得超11个赞
不容易。
您可以遍历gc.get_objects()列表,测试每个对象是否相同,id()但这不是很实际。
该id()函数不可取消引用;它基于内存地址的事实是CPython实现的详细信息,其他Python实现则不遵循。
添加回答
举报
0/150
提交
取消