以下是通過boost::python實現的,python版本2.7
int main()
{
Py_Initialize();
PyObject * pModule = NULL;//聲明變量
PyObject * pFunc = NULL;// 聲明變量
pModule =PyImport_ImportModule("helloworld");//這里是要調用的文件名
if (!pModule)
cout << "err";
handle<>* _module; // Module handle.
_module = new handle<>(pModule);
// 通過call_method
int i = call_method<int>(_module->get() , "Hello" , 4);
// 通過attr
main_module.attr("Hello")(2);
// main_module.attr("Hello")(2); 展開如下
object main_module(*_module);
object FunObj = main_module.attr("Hello"); // 獲取hello函數對象
// 通過object父類的operator()操作符
FunObj(1);
// 通過call
i = call<int>(FunObj.ptr(), 3);
{ // 遍歷一遍python內置類型list對象中的值
list List = call_method<list>(_module->get() , "getList");
int n = len(List);
for (int i = 0 ; i < n ; i++)
{
int val = extract<int> (List[i]); // 獲取List[i]產生的object對象中的值,通過extract模板來轉換
cout << val << " ";
}
}
return 0;
}
posted on 2011-06-02 11:22
zhaoyg 閱讀(510)
評論(0) 編輯 收藏 引用 所屬分類:
C++和Python