简单:我有一个Python对象ID,我想检查是否有一个具有该ID的对象。
从这个SO答案中,您可以使用ID通过ID获取现有对象
import ctypes
a = 10
object_id = id(a)
ctypes.cast(object_id, ctypes.py_object).value
但是当使用任意调用时,它挂起了object_id
,所以这是不切实际的解决方案。
为此,您需要对所有Python对象进行详尽的枚举。否则,不可能分辨出对象和恰好看起来像对象的内存区域之间的区别。
不幸的是,没有如此详尽的清单。最接近的可能是gc.get_objects()
,它返回垃圾回收器跟踪的所有对象的列表(列表本身除外)。您可以搜索一个与您的ID匹配的对象,但x = 1; print x in gc.get_objects()
找不到类似的对象。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句