在开始编写程序之前,我们需对下面以下几个常用参数处理函数有个大概的了解:
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") &#