嵌入Python | 调用Python模块中有参数的函数
Posted 为者常成,行者常至。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入Python | 调用Python模块中有参数的函数相关的知识,希望对你有一定的参考价值。
开发环境
Python版本:3.6.4 (32-bit)
编辑器:Visual Studio Code
C++环境:Visual Studio 2013
需求说明
前一篇《嵌入Python|调用Python模块中无参数的函数》中我们成功的在C++主程序中嵌入了Python,并且调用了Python模块中的一个无参数的函数。这一篇我们将在此基础上,实现在主程序中调用Python模块中有参数的函数,使两者互动起来
。
0 准备say_hi.py模块
在say_hi.py中增加含有一个参数的函数prt_hello和含有两个参数的函数zl_add,完整代码如下图:
1 主程序中调用含有一个参数的函数
将主程序中的数据作为参数直接传入Python模块中函数,肯定是不行的,这中间需要进行转换。参数要以tuple元组的形式传入
,即需将主程序的数据转换为元组。
主程序源代码:
主程序运行结果:
2 主程序中调用含有两个参数的函数
通过如下示例介绍一下两种构造参数元组的方法:
主程序源代码:
主程序运行结果:
其它情况下的参数类似以上的处理方法,详细参考官方文档:https://docs.python.org/3/c-api/arg.html#building-values
3 下篇预告
- 在主程序中对Python模块中
函数的返回值
加以解析 - 总结
Py_BuildValue
的用法
以上是关于嵌入Python | 调用Python模块中有参数的函数的主要内容,如果未能解决你的问题,请参考以下文章
怎么处理用python 中PyV8模块调用js,js中有window对象的问题?
如何在 boost::python 嵌入式 python 代码中导入模块?