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; }