6c語言教程.docVIP

  • 4
  • 0
  • 约2.32千字
  • 约 6页
  • 2016-10-16 发布于重庆
  • 举报
6c語言教程

 代码如下,分别演示直接执行python语句、无返回无参数函数调用、返回单参数函数调用。返回多参数函数调用:   #include Python.h   #include iostream   using namespace std;   //执行python命令   void ExecPythonCommand()   {   //直接执行   PyRun_SimpleString(from time import time,ctime\n   print Today is,ctime(time())\n);   }   //调用无参数函数   void InvokeNoParm()   {   PyObject* pMod = NULL;   PyObject* pFunc = NULL;   //导入模块   pMod = PyImport_ImportModule(Life);   if(pMod)   {   //获取函数地址   pFunc = PyObject_GetAttrString(pMod, a);   if(pFunc)   {   //函数调用   PyEval_CallObject(pFunc, NULL);   }   else   {   cout cannot find function a endl;   }   }   else   {   cout cannot find Life.py endl;   }   }   //调用一参数函数   void InvokeWith1Parm()   {   PyObject* pMod = NULL;   PyObject* pFunc = NULL;   PyObject* pParm = NULL;   PyObject* pRetVal = NULL;   int?? iRetVal = 0;   //导入模块   pMod = PyImport_ImportModule(FuncDef);   if(pMod)   {   pFunc = PyObject_GetAttrString(pMod, square);   if(pFunc)   {   //创建参数   pParm = Py_BuildValue((i), 5);   //函数调用   pRetVal = PyEval_CallObject(pFunc, pParm);   //解析返回值   PyArg_Parse(pRetVal, i, iRetVal);   cout square 5 is: iRetVal endl;   }   else   {   cout cannot find function square endl;   }   }   else   {   cout cannot find FuncDef.py endl;   }   } //调用多参数函数   void InvokeWith2Parm()   {   PyObject* pMod = NULL;   PyObject* pFunc = NULL;   PyObject* pParm = NULL;   PyObject* pRetVal = NULL;   int?? iRetVal = 0;   //导入模块   pMod = PyImport_ImportModule(add);   if(pMod)   {   pFunc = PyObject_GetAttrString(pMod, add);   if(pFunc)   {   //创建两个参数   pParm = PyTuple_New(2);   //为参数赋值   PyTuple_SetItem(pParm, 0, Py_BuildValue(i,2000));   PyTuple_SetItem(pParm, 1, Py_BuildValue(i,3000));   //函数调用   pRetVal = PyEval_CallObject(pFunc, pParm);   //解析返回值   PyArg_Parse(pRetVal, i, iRetVal);   cout 2000 + 3000 = iRetVal endl;   }   else   {   cout cannot find function square endl;   }   }   else   {   cout cannot find add.py endl;   }   }   int main(int argc, char* argv[])   {   Py_Initialize(); //pyt

文档评论(0)

1亿VIP精品文档

相关文档