-2
我有一个查询,即在蟒蛇 如果我们试试这个
>>>a=5
>>>id(a)
>>>746363
即我们正在获取id,它相当于地址, 我的查询是th在,有什么办法 得到的ID值或对象,就像我们是从目标
就像如下,
>>>object(746363)
>>>5
获得ID上面我写的一个交付我的查询清楚
我有一个查询,即在蟒蛇 如果我们试试这个
>>>a=5
>>>id(a)
>>>746363
即我们正在获取id,它相当于地址, 我的查询是th在,有什么办法 得到的ID值或对象,就像我们是从目标
就像如下,
>>>object(746363)
>>>5
获得ID上面我写的一个交付我的查询清楚
首先,id()返回的内存地址是CPython的实现细节,Python并不保证它会继续以这种方式工作。所以你应该重新考虑它并寻求更多pythonic方法。
Python不会公开任何“好”API来执行此操作,但可以使用ctypes模块访问任何内存点。 来自this page的示例:
import ctypes
class PyTypeObject(ctypes.Structure):
_fields_ = ("ob_refcnt", ctypes.c_int), ("ob_type", ctypes.c_void_p), \
("ob_size", ctypes.c_int), ("tp_name", ctypes.c_char_p)
class PyObject(ctypes.Structure):
_fields_ = ("ob_refcnt", ctypes.c_int), ("ob_type", ctypes.POINTER(PyTypeObject))
PyObjectPtr = ctypes.POINTER(PyObject)
print ctypes.cast(id("test"), PyObjectPtr).contents.ob_type.contents.tp_name
您真的,真的确定您需要这个吗?你究竟想要做什么? – l4mpi
是的,我需要在我的项目中。这出来时,我正在考虑共享内存 –
你不需要这个,python已经有手段共享内存。再次阅读有关多处理的文档。 – Paladin