1
如果我有以下功能並且可選參數myobj
未通過,那麼myobj
仍然是NULL
還是設置爲Py_None
?PyArg_ParseTuple默認參數
static PyObject * myfunc(PyObject * self, PyObject * args) {
PyObject * myobj = NULL;
if (!PyArg_ParseTuple(args, "|O", &myobj)) {
return NULL;
}
// ...
}
據Parsing arguments and building values,
|
表示在Python參數列表中的其餘參數都是可選的。對應於可選參數的C變量應該初始化爲其默認值 - 當未指定可選參數時,PyArg_ParseTuple()不會觸及相應C變量的內容。
這是否適用於PyObject *
s?這顯然是一個存在於C中的指針,所以可以說它是一個C變量,但它是一個指向python對象的指針,所以也可以說它不會被視爲C變量。