C++ python-c++;与许多功能的接口?
我正在编写一个Python接口到C++库,我想知道库的正确设计。 我发现(困难的是)传递给python的所有方法都必须声明为静态的。如果我理解正确,这意味着所有函数基本上都必须在同一个.cpp文件中定义。我的界面有很多功能,所以很快就会变得难看 处理这个问题的标准方法是什么?我能想到的可能性:C++ python-c++;与许多功能的接口?,c++,python,interface,C++,Python,Interface,我正在编写一个Python接口到C++库,我想知道库的正确设计。 我发现(困难的是)传递给python的所有方法都必须声明为静态的。如果我理解正确,这意味着所有函数基本上都必须在同一个.cpp文件中定义。我的界面有很多功能,所以很快就会变得难看 处理这个问题的标准方法是什么?我能想到的可能性: 不用担心,使用一个looong.cpp文件 编译到多个库(.so文件) 为每组函数编写一个.cpp,并#将该.cpp包含到主定义cpp文件(带有PyMethodDef的文件)的主体中 他们两个看起来都
- 不用担心,使用一个looong.cpp文件
- 编译到多个库(.so文件)
- 为每组函数编写一个.cpp,并#将该.cpp包含到主定义cpp文件(带有PyMethodDef的文件)的主体中
我建议你看看。他们解决了你遇到的许多问题,使C++和Python之间的对话变得非常容易。 为什么你说Python调用的所有函数都必须是 静止的这是通常的情况下,为了避免 名称冲突(因为将忽略任何命名空间等) 因为
外部“C”
),但是函数是否是静态的
不管有没有,都不重要
在C++中连接一个库时,以我的经验,它是 一般来说,让它保持静态并把所有的 函数在单个翻译单元中,因为 函数将是只调用实际C++的小包装器, 通常,会自动从某种类型的 描述符文件;你肯定不会写所有的东西 手工制作必要的样板