本文共 724 字,大约阅读时间需要 2 分钟。
这可以这样做:
1.从Python转换为C
如果你真的意味着无效*这将是:
some_pyobj = "abc"
cdef void *ptr
ptr = some_pyobj
如果你的意思是PyObject *,那将是:
cdef PyObject *ptr
ptr = some_pyobj # Cast from Python object to C pointer
然后,从C侧,PyObject结构可以通过包含Python.h来获得.
这是引用(来自object.h Python包含文件):
/* Nothing is actually declared to be a PyObject, but every pointer to
* a Python object can be cast to a PyObject*. This is inheritance built
* by hand. Similarly every pointer to a variable-size Python object can,
* in addition, be cast to PyVarObject*.
*/
typedef struct _object {
PyObject_HEAD
} PyObject;
2.从C转换为Python
它以两种方式工作,这意味着以下也是可能的:
cdef PyObject *ptr
ptr = some_pyobj
cdef object some_other_pyobj
some_other_pyobj = ptr # Cast from C pointer to Python object
转载地址:https://blog.csdn.net/weixin_33478634/article/details/113991084 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!