簡體   English   中英

如何使用SWIG編寫C ++代碼以在python提示符下打印變量值

[英]How can I write C++ code to print variable values in python prompt with SWIG

我剛接觸SWIG,想包裝C ++類並在python中使用它。 作為實踐,我正在編寫一個Vector類(類似於STL中的類)。 現在,我想在python環境中輸入向量名稱后打印出向量的元素。

就像這樣:

>>>v
1 2 3 4

我該如何實現?

您可以在.i文件中使用%template指令和std_vector.i庫。

參考: http : //www.swig.org/Doc3.0/SWIGDocumentation.html#Library_std_vector

myModule.h文件(C ++頭文件)

#include <vector>

std::vector<int> GetVectorInt();

myModule.cpp文件(C ++源文件)

std::vector<int> GetVectorInt()
{
    std::vector<int> vOutput;

    for(int i = 0; i < 10; i++)
        vOutput.push_back(i);

    return vOutput;
}

myModule.i文件(SWIG接口文件)

%module myModule
%{
#include "myModule.h"
%}

%include "std_vector.i"

%template(IntVector) std::vector<int>;

%include "myModule.h"

Python輸出

>>> my_vector = myModule.GetVectorInt()
>>> my_vector
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

暫無
暫無

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

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