如果我要用C扩展Python,则可以使用PyArg_ParseTuple()
之类的函数解析Python端提供的参数。但是,这仅允许我指定标量参数或已知长度的元组参数。我如何处理用户从Python调用具有任意长度的元组的函数的情况?例如:
import foo
foo.bar([1, 2, 3])
foo.bar([4, 5])
在这里,bar()
在C中定义,并且其参数使用PyArg_ParseTuple()
进行解析,该参数将参数值复制到局部变量中。我必须指定参数格式和将解析值复制到的地址。例如:
int i,j;
PyArg_ParseTuple(args, "i", &i)
/* or */
PyArg_ParseTuple(args, "(ii)", &i, &j);
但是我想要的是这样的:
int *i;
int ni;
PyArg_ParseTuple(args, "(i...)", &ni, i);
其中,i是一个数组,ni是该数组中元素的数量。这可能吗?
答案 0 :(得分:0)
请参考该主题以获取详细说明,但这被标记为重复