深入探索Python C API:参数解析、值创建与异常处理
1. 格式字符串与参数解析
格式字符串在Python C API中有着重要作用。它可以选择以 :name 结尾,这意味着如果出现错误消息, name 必须用作函数名。另外,格式字符串也可以以 ;text 结尾,当 PyArg_ParseTuple 检测到错误时, text 将作为完整的错误消息(不过这种形式很少使用)。
当 PyMethodDef 中的 ml_flags 设置为 METH_KEYWORDS 时,函数可以接受位置参数和命名参数。Python代码调用该函数时,可以传入任意数量的位置参数(Python解释器会将其收集为元组)和命名参数(收集为字典)。C函数的第二个参数是对元组的借用引用,第三个参数是对字典的借用引用。之后,C代码会调用 PyArg_ParseTupleAndKeywords 函数。
int PyArg_ParseTupleAndKeywords(PyObject* tuple,
PyObject* dict, char* format, char** kwlist,...)
该函数在出错时返回0,成功时返回非0值。 tuple 是C函数的第二个参数, dict 是第三个参数, <
超级会员免费看
订阅专栏 解锁全文
85

被折叠的 条评论
为什么被折叠?



