韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python常见问题 > c调用python怎么释放

c调用python怎么释放

Python

头像

yang

2020-04-29 15:44:403498浏览 · 0收藏 · 0评论

c调用Python的步骤:

1、设置编译环境,其实就是设置Python的头文件和库文件目录

2、初始化Python解释器:

 Py_Initialize();

3、调用Python

4、释放资源

Py_Finalize();

实例:

/*
module:    Python脚步的模块名
function:  要调用的函数名
format:    传递给Py_VaBuildValue函数的可变参数模板
*/
int PyCall( const char * module, const char * function, const char *format, ... )
{
 PyObject* pMod    = NULL;
 PyObject* pFunc   = NULL;
 PyObject* pParm   = NULL;
 PyObject* pRetVal = NULL;

 //导入??? if( !(pMod = PyImport_ImportModule(module) ) ){
  return -1;
 }
 //查找函数
 if( !(pFunc = PyObject_GetAttrString(pMod, function) ) ){
  return -2;
 }

 //创建参数
 va_list vargs;
 va_start( vargs, format );
 pParm = Py_VaBuildValue( format, vargs );
 va_end(vargs);

 //函数调用
 pRetVal = PyEval_CallObject( pFunc, pParm);
 
 //假定返回值为整形
 int ret;
 PyArg_Parse( pRetVal, "i", &ret );
 return ret;
}

int main(int argc, char* argv[])
{
 Py_Initialize();

 /* 这做个简单的说明
 ** format参数用()扩起来是表示元组的意思。元组中的个数对应Python脚本中的参数。
 ** 因为fun,fun1,fun2函数的参数个数分别是 0,1,2,所以,元组中的个数必须为0,1,2,不然调用将失
 ** 败。当然,元组中的每个元素都是可以为任意的类型,比如:
 **     PyCall( "pytest", "fun2", "( i,{s:s,s:s})", 2, "name", "linxr", "age", "25" );
 */
 printf( "ret = %d\n", PyCall( "pytest", "fun",  "()" );
 printf( "ret = %d\n", PyCall( "pytest", "fun1", "(i)",  12 );
 printf( "ret = %d\n", PyCall( "pytest", "fun2", "(is)", 12, "12" );

 Py_Finalize();

 return 0;
}

更多Python知识请关注Python视频教程栏目。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

亚洲| 美国伦理护士3D| 欧美| 欧美| 欧美大片视频| 姐妹花破瓜双飞记的寓意和象征意.. | 纯白交响曲动浸| 色色资源| 美国伦理护士3D| 小叔子从后面抱住我的电视剧| 4虎CVT4WD入口免费| 善良的小峡子 4| DK| 美女| 少女配狗视频大全播放| 国产自拍| 妈妈出轨了免费观看电视剧全集 | 二人世界高清视频播放| 儿媳妇长太漂亮免费观看电视剧| 绝色儿媳在线观看免费版电视剧 | 苍井空高清图片| 两男吮她的花蒂和奶水视频| 一边啃奶头一边躁狂会怎么样| 《性爽2》电影| 打扑克不盖被子| 久久精品亚洲AV无码洋洋| 《性爽2》电影| 女人被男人进入后的心理变化 | 成色P31S是国精产品吗| 成品PPT网站大片入口| 被教官按在寝室狂C到腿软漫画| 少女たちよ观看免费高清电视剧| 男男| 美女和老板一起努力做豆浆| 老师没戴套子C了我一天视频| 狗配人的大片| 宝可梦朱紫图鉴| 性船1982色情| 爸老师在线观看免费播放电视剧| 《工地夫妻》原声版 | 教练车内含乳挺进她漫画