我觉得奇怪的是,我无法通过搜索来回答这个问题,只是从如何从指针创建PyCObject
的相反问题(在C中,而不是Python)。我可能只是使用了错误的搜索词。
我在Python中有一个PyCObject
,我想得到包装的内存地址。好吧,实际上我想将它转换为ctypes
指针,但我可以从内存地址执行此操作。我怎么才能得到它? help(some_pyc_object)
信息量不大,dir(some_pyc_object)
也不是。
我想做以下事情:
addr = some_pyc_object.get_memory_address() # pseudo method
data = ctypes.c_long_p(addr)
# ...
答案 0 :(得分:3)
import ctypes
PyCObject_AsVoidPtr = ctypes.PYFUNCTYPE(ctypes.c_void_p, ctypes.py_object)(
('PyCObject_AsVoidPtr', ctypes.pythonapi))
addr = PyCObject_AsVoidPtr(some_pyc_object)