当前位置: 首页 > 图文教程 > 开发语言 > VC++ > C++ 扩展和嵌入 Python
| C++ 扩展和嵌入 Python 下载源代码
常用的Python/C API介绍 char *cstr;PyObject *pstr, *pmod, *pdict;PyObject *pfunc, *pargs;1. void Py_Initialize( ) 初始化Python解释器,在C++程序中使用其它Python/C API之前,必须调用此函数,如果调用失败,将产生一个致命的错误。例: Py_Initialize();2. int PyRun_SimpleString( const char *command) 执行一段Python代码,就好象是在__main__ 函数里面执行一样。例: PyRun_SimpleString("from time import time,ctime\n""print ''Today is'',ctime(time())\n");3. PyObject* PyImport_ImportModule( char *name)导入一个Python模块,参数name可以是*.py文件的文件名。相当于Python内建函数__import__()。例: pmod = PyImport_ImportModule("mymod"); //mymod.py4. PyObject* PyModule_GetDict( PyObject *module) 相当于Python模块对象的__dict__ 属性,得到模块名称空间下的字典对象。例: pdict = PyModule_GetDict(pmod);5. PyObject* PyRun_String( const char *str, int start, PyObject *globals, PyObject *locals) 执行一段Python代码。 pstr = PyRun_String("message", Py_eval_input, pdict, pdict);6. int PyArg_Parse( PyObject *args, char *format, ...)解构Python数据为C的类型,这样C程序中才可以使用Python里的数据。例: /* convert to C and print it*/PyArg_Parse(pstr, "s", &cstr);printf("%s\n", cstr);7. PyObject* PyObject_GetAttrString( PyObject *o, char *attr_name)返回模块对象o中的attr_name 属性或函数,相当于Python中表达式语句:o.attr_name。例: /* to call mymod.transform(mymod.message) */pfunc = PyObject_GetAttrString(pmod, "transform");8. PyObject* Py_BuildValue( char *format, ...) 构建 |