是否可以取消引用变量ID?

您可以取消引用从idPython中的函数检索的变量ID 吗?例如:


dereference(id(a)) == a

我想从学术角度了解;我了解还有更实用的方法。


尚方宝剑之说
浏览 487回答 3
3回答

蝴蝶不菲

这是一个实用程序函数,该函数基于“ Tiran”在Hophat Abc所引用的讨论中提出的评论,该评论将在Python 2和3中都适用:import _ctypesdef 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

回首忆惘然

不容易。您可以遍历gc.get_objects()列表,测试每个对象是否相同,id()但这不是很实际。该id()函数不可取消引用;它基于内存地址的事实是CPython实现的详细信息,其他Python实现则不遵循。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python