我用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

请建议。我该怎么做? 注意:我想知道手动方式来做到这一点。我不想要任何第三方库依赖。

有帮助吗?

解决方案

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

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

您可以使用 Python / C API 手动完成,自己编写界面。这是相当低级的,但你将获得许多关于Python如何在幕后工作的额外知识(无论如何你将需要它。)

其他提示

ctypes 很不错。它非常易于使用,并且标配Python。不幸的是,它只能与具有C风格接口的共享库(Unix)或DLL(Windows)通信,这意味着您无法直接连接到C ++对象。但您可以使用句柄系统,其中句柄指的是特定对象。

>>> getInt(h)
12

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

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

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

这些可用于包装C ++类并为它们提供Pythonic接口。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top