將Python 類別與C 程式碼互動
問:如何實作可以從較大的C 程式中呼叫的Python 類別?
問:如何實作可以從較大的C 程式中呼叫的Python 類別?問:如何實作可以從較大的C 程式中呼叫的Python 類別?
問:如何實作可以從較大的C 程式中呼叫的Python 類別?A:要將Python 類別與C 程式碼接口,有兩個關鍵步驟:
使用以下指令啟用跨語言多態性SWIG 中的導演特寫。
使用輔助函式將 Python 物件轉換為 C 物件 (myif *python2interface(PyObject *obj))。
範例:
<code class="cpp">class myif { public: virtual float myfunc(float a) = 0; };</code>
import module
class MyCl(module.myif):
def myfunc(self,a):
return a*2.0<p><strong></strong></p>main.cc(C 嵌入Python): <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><code class="cpp">#include "runtime.h"
myif *python2interface(PyObject *obj) {
...
}
int main() {
Py_Initialize();
... // import and call Python class
myif *inst = python2interface(instance);
std::cout << inst->myfunc(5.5) << std::endl;
Py_Finalize();
return 0;
}</code></pre><div class="contentsignin">登入後複製</div></div>
<p></p>這種方法允許您建立以下內容的Python 實現您的C 介面並將它們無縫整合到更大的C 程式中。
以上是如何使用 SWIG 將 Python 類別與 C 程式連接?的詳細內容。更多資訊請關注PHP中文網其他相關文章!