小编Sac*_*cha的帖子

如何在不构建模块的情况下将C++类公开给Python

我想知道是否有任何方法可以将C++类暴露给Python,但是没有构建中间共享库.

这是我理想的情景.例如,我有以下C++类:

class toto
     {
     public:
        toto(int iValue1_, int iValue2_): iValue1(iValue1_), iValue2(iValue2_) {}
        int Addition(void) const {if (!this) return 0; return iValue1 + iValue2;}

      private:
        int iValue1;
        int iValue2;
     };
Run Code Online (Sandbox Code Playgroud)

我想以某种方式将此类(或其intance)转换为PyObject*,以便将其作为paremter(args)发送到例如PyObject_CallObject:

PyObject* PyObject_CallObject(PyObject* wrapperFunction, PyObject* args)
Run Code Online (Sandbox Code Playgroud)

另一方面,在我的python方面,我将有一个wrapperFunction,它将我的C++类(或其实例)上的指针作为参数获取,并调用其方法或使用其属性:

def wrapper_function(cPlusPlusClass):
    instance = cPlusPlusClass(4, 5)
    result = instance.Addition()
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我并不需要/希望拥有单独的共享库或通过boost python构建模块.我需要的只是找到一种方法将C++代码转换为PyObject并将其发送到python.我无法通过C python库,boost或SWIG找到一种方法.

你有什么主意吗?谢谢你的帮助.

c++ python swig boost-python

5
推荐指数
2
解决办法
2595
查看次数

将git提交到远程存储库,而无需克隆任何本地存储库

我的问题很简单,但是我在StackOverflow或其他地方找不到任何答案(除了这个问题,但没有得到回答):

有谁知道一种将GIT更改“直接”提交到远程存储库(在我的例子中是Github)而无需在本地克隆存储库,而必须先提交到本地存储库然后再推送到远程的方法吗?

提交将通过Python(仅使用GIT命令行)以编程方式执行。老实说,我看不到有一个单独的服务器(用于本地存储库)并在其上保留巨大的git存储库,只是最终将它们推到Github的优势。

git github github-api

1
推荐指数
1
解决办法
790
查看次数

标签 统计

boost-python ×1

c++ ×1

git ×1

github ×1

github-api ×1

python ×1

swig ×1