使用C头中定义的结构作为Python数据类型

时间:2013-01-31 09:20:32

标签: python python-c-api

如何使用头文件中定义的C struct foo作为Python代码中的数据类型?

This document似乎没有解决这个问题。)

typedef struct {

    PyObject_HEAD

    /* Type-specific fields go here. */

     struct api_query query; /* instead of PyObject * type here */

} api_Request;

1 个答案:

答案 0 :(得分:0)

构建扩展模块不是一项简单的任务(您链接到的文档确实详细说明了如何执行此操作)。要以这种方式包装C结构,您需要定义新类型和Python的常用方法(构造函数,析构函数,访问方法等)。

您可能会发现ctypes包是一种更简单的方法。

更好的是,如果你需要做的只是创建结构并发送它(如你所说的那样发送到套接字),如果结构足够简单,那么struct.pack函数可能是最简单的。 / p>