将C结构传递给Python函数
发布时间:2020-12-16 07:28:16 所属栏目:百科 来源:网络整理
导读:我需要一种简单的方法将C结构传递给 Python函数.我已经将 Python嵌入到游戏服务器中,我打算用Python编写游戏逻辑.我已经搜索过谷歌和邮件列表,没有发现任何有用的东西.我在C中有一个复杂的结构(指向其他相对复杂的结构)并且没有找到合理的方法. 我有这个结构
我需要一种简单的方法将C结构传递给
Python函数.我已经将
Python嵌入到游戏服务器中,我打算用Python编写游戏逻辑.我已经搜索过谷歌和邮件列表,没有发现任何有用的东西.我在C中有一个复杂的结构(指向其他相对复杂的结构)并且没有找到合理的方法.
我有这个结构: struct client { int state; int sockfd; struct sockaddr_in *addr; struct epoll_event *epollev; struct buffer *in_buffer; struct buffer *out_buffer; struct packet *packet; struct player *player; }; 并且需要将它传递给Python函数,在那里我可以使用通用语法轻松访问成员(最好不要使用像dicts这样的东西,尽管那也没关系).这几乎就像我需要一个PyObject_FromStruct函数. 有没有相对简单的方法来做到这一点? 解决方法
我认为最简单的方法可能是为结构中的每个元素编写get()/ set()函数(例如:获取地址值的get_addr())然后:
选项1(我认为这是最简单的):使用get / set导出将您的c代码编译为dll文件并将其加载到python中以调用“get”函数 选项2:您可以使用SWIG获取pyd文件并将其导入python以调用“get / set”函数 使用这种方式python只处理指针NOT指针,不涉及任何内存地址使用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |