扩展和嵌入 Python:C 与 Python 的交互指南
1. Python 参数解析
在处理 Python 对象时,我们常常需要解析传递给函数的参数。以下是一些常用的参数解析函数及其使用方法:
1.1 PyArg_ParseTuple()
该函数用于解析元组形式的参数。格式说明符中的修饰符有特定的含义:
- “|”:表示剩余的参数都是可选的,且在格式说明符中只能出现一次,不能嵌套。
- “:”:表示参数结束,后续文本用作错误消息中的函数名。
- “;”:表示参数结束,后续文本用作错误消息。注意,“:” 和 “;” 只能使用其中一个。
以下是一些示例代码:
int ival, ival2, len;
double dval;
char *sval;
PyObject *o1, *o2;
// 解析一个整数、一个双精度浮点数和一个字符串
PyArg_ParseTuple(args,"ids", &ival, &dval, &sval);
// 解析一个字符串和长度
PyArg_ParseTuple(args,"s#", &sval, &len);
// 解析可选参数
PyArg_ParseTuple(args,"id|s", &ival, &dval, &sval);
// 解析并附带错误消息
PyArg_ParseTuple(args,"ii; gcd requires 2 integers", &ival, &ival2);
// 解析两