-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