1
다음 함수가 있고 선택적 인수 myobj
이 전달되지 않으면 myobj
은 NULL
으로 유지됩니까? 아니면 Py_None
으로 설정합니까? 에 따르면 Parsing arguments and building valuesPyArg_ParseTuple 기본 인수
static PyObject * myfunc(PyObject * self, PyObject * args) {
PyObject * myobj = NULL;
if (!PyArg_ParseTuple(args, "|O", &myobj)) {
return NULL;
}
// ...
}
,
|
파이썬 인수 목록에있는 나머지 인수는 선택을 나타냅니다. 선택적 인수에 해당하는 C 변수는 기본값으로 초기화해야합니다. 선택적 인수가 지정되지 않으면 PyArg_ParseTuple()이 해당 C 변수의 내용을 변경하지 않습니다.
이 내용은 PyObject *
에 적용됩니까? 분명히 C에있는 포인터이기 때문에 C 변수라고 말할 수 있습니다.하지만 파이썬 객체에 대한 포인터이기 때문에 C 변수로 간주되지 않을 수도 있습니다.