如何在Python中使用C++类?

2024-04-29 08:13:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经在C++中实现了一个类。我想和Python一起使用。 请逐步提出建议,并详细说明每一步。 像这样的事情。。。

class Test{
     private:
        int n;
     public:
        Test(int k){
            n=k;
        }
        void setInt(int k){
            n = k; 
        }
        int getInt(){
            return n;
        }
};

现在,在Python中

>>> T1 = Test(12)
>>> T1.getInt()
12
>>> T1.setInt(32)
>>> T1.getInt()
32

请建议一下。我该怎么做? 注:我想知道手工操作的方法。我不想要任何第三方库依赖项。


Tags: 方法testreturnprivatepublic事情建议class
3条回答

我建议你尝尝SWIG或sip(KDE/PyQt)。

SWIG链接:http://www.swig.org/
SIP链接:http://freshmeat.net/projects/python-sip/

这些可以用来包装C++类,并提供Pythic接口。

看看Boost.Python。这是一个用C++编写Python模块的库。

还可以查看SWIG,它还可以处理其他脚本语言的模块。我以前用它为我的类编写模块,并在python中使用它们。效果很好。

您可以使用Python/C API手动完成,自己编写接口。它的级别很低,但是您将获得很多关于Python如何在场景后面工作的额外知识(而且当您使用SWIG时仍然需要它)。

ctypes很好。它非常易于使用,并且是Python的标准配置。不幸的是,它只能与共享库(UNIX)或具有C风格接口的DLL(Windows)进行对话,这意味着不能直接与C++对象进行接口。但是可以使用句柄系统,其中句柄引用特定对象。

>>> getInt(h)
12

我认为这很简单,容易理解,不需要额外的库。

相关问题 更多 >