将 C 结构体传递给 Python 函数

2024-01-05

我需要一种简单的方法将 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 函数或其他东西。

有没有相对简单的方法来做到这一点?


SWIG 可以处理指针,特别是如果您可以在 Python 代码中将它们视为不透明的 blob。

您还可以使用 Cython - 它是 Python 的一种方言,允许您混合 Python 和 C 数据类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 C 结构体传递给 Python 函数 的相关文章

随机推荐