我用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接口.