C++嵌入Python程序(二):参数传入及返回

在开始编写程序之前,我们需对下面以下几个常用参数处理函数有个大概的了解:

1)         Py_BuildValue()函数

作用:将C/C++类型类型的数据转变成PyObject*对象。

原型:PyAPI_FUNC(PyObject*) Py_BuildValue(const char *format, ...);(VC中复制过来的),有点类似与printf(format,…).

参数解释:format及转换格式,类似与C语言中%d,%f,后面的不定参数对应前面的格式,具体格式如下

         "s"(string) [char *] :将C字符串转换成Python对象,如果C字符串为空,返回NONE。

         "s#"(string) [char *, int] :将C字符串和它的长度转换成Python对象,如果C字符串为空指针,长度忽略,返回NONE。

         "z"(string or None) [char *] :作用同"s"。

      "z#" (stringor None) [char *, int] :作用同"s#"。

      "i"(integer) [int] :将一个C类型的int转换成Python int对象。

         "b"(integer) [char] :作用同"i"。

         "h"(integer) [short int] :作用同"i"。

         "l"(integer) [long int] :将C类型的long转换成Pyhon中的int对象。

         "c"(string of length 1) [char] :将C类型的char转换成长度为1的Python字符串对象。

         "d"(float) [double] :将C类型的double转换成python中的浮点型对象。

         "f"(float) [float] :作用同"d"。

         "O&"(object) [converter, anything] :将任何数据类型通过转换函数转换成Python对象,这些数据作为转换函数的参数被调用并且返回一个新的Python对象,如果发生错误返回NULL。

         "(items)"(tuple) [matching-items] :将一系列的C值转换成Python元组。

         "[items]"(list) [matching-items] :将一系列的C值转换成Python列表。

         "{items}"(dictionary) [matching-items] :将一系类的C值转换成Python的字典,每一对连续的C值将转换成一个键值对。

举例

         后面为PyObject的返回值

Py_BuildValue("")None

         Py_BuildValue("i",123) 123

         Py_BuildValue("iii",123, 456, 789) (123, 456, 789)

         Py_BuildValue("s","hello") &#

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值