简单:我有一个Python对象id,我想检查是否有一个带有该id的对象。
从this SO answer,您可以通过ID
获取现有对象import ctypes
a = 10
object_id = id(a)
ctypes.cast(object_id, ctypes.py_object).value
但是在使用任意object_id
调用时它会挂起,因此这是一个不切实际的解决方案。
答案 0 :(得分:2)
要做到这一点,您需要详尽列举所有Python对象。否则,就不可能分辨出恰好看起来像对象的对象和内存区域之间的区别。
不幸的是,没有这么详尽的清单。最接近的可能是gc.get_objects()
,它返回垃圾收集器跟踪的所有对象的列表(不包括列表本身)。您可以搜索与您的ID匹配的对象,但x = 1; print x in gc.get_objects()
之类的内容无法找到该对象。