我刚开始学习C和Python这两种语言。这段时间,我在学习如何把Python嵌入到C里面。当我从C里调用Python函数时,我想知道,怎么才能把C里的结构体传递给Python呢?
非常感谢!
这可能不是你想要的答案,但我们使用LCM来在C/C++、Python、Java和Matlab程序之间通过UDP和多播共享C结构体。这在做机器人相关的工作时非常方便。
这段文档是关于如何扩展或嵌入Python的,可能会对你入门有所帮助。
另外,还有一个ctypes库,可以让你动态加载本地的DLL文件,并在Python中进出类似C语言的结构体。
ctypes
最简单的方法可能就是创建一个新类型,然后实现一个叫做tp_getattr的功能。这个功能可以根据你传入的参数,返回结构体中相应的成员,或者在需要的时候抛出一个异常。
tp_getattr