簡體   English   中英

在python中導入C ++類嗎?

[英]Import C++ classes in python?

所以..說我有這個C函數:

PyObject* Foo(PyObject* pSelf, PyObject* pArgs)
{
    MessageBox(NULL, "Foo was called!", "Info", MB_OK);
    return PyInt_FromLong(0);
}

然后,我必須這樣做:

static PyMethodDef Methods[] = 
{
    {"Foo", Foo, METH_NOARGS, "Dummy function"},
    {NULL, NULL, 0, NULL}
};
Py_InitModule("bar", Methods);

我執行了python腳本。但是C函數有點煩人,它是C ++,並且幾乎所有類都使用類。

那么,有什么方法可以將成員函數從類導入到我的python腳本中?

哦,順便說一句,python腳本看起來像這樣:

import bar
from bar import *
Foo()

boost.python使您可以非常有效地做到這一點。

SWIG也可以很好地工作。

看看boost python頁面。 搜索“免費功能”。

Cython具有我發現的最好的C ++包裝 ,盡管它比SWIG更為冗長,並且有一定的思維定式。 編寫映射比SWIG更容易-因為它使用Python類型-但您必須手動編寫所有映射。 這也是一個非常活躍的項目,具有非常友好的郵件列表。 它還對NumPy具有良好的緩沖區支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM