问题描述
我有 Python C-Extension 函数,它采用可调用作为参数来充当回调。 我有两种类型的回调,每一种都有不同数量的参数。 我想根据其参数的数量检测回调类型。
是否有直接的方法,因为我已经有了 PyObject*
,而不是调用 inspect
模块?
static PyObject *RegisterCallback(PyObject *self,PyObject *args,PyObject *kwdict)
{
PyObject* callback;
static char *kwlist[] = { "callback",NULL};
if (!PyArg_ParseTupleAndKeywords(args,kwdict,"O",kwlist,&callback))
return NULL;
if(!PyCallable_Check(callback))
{
PyErr_SetString(PyExc_ValueError,"The callback should be callable function or callable object.");
return NULL;
}
int args_count = ????
bool registration_result = register_the_callback(callback);
if (registration_result )
{
Py_RETURN_TRUE;
}
else
Py_RETURN_FALSE;
}
注意: 目标 Python:2.7、3.x。
注意:我已经知道 python 2.x 已经死了,我们应客户的要求保留它。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)