5 Stimmen

PyArg_ParseTuple Standard-Argument

Wenn ich die folgende Funktion und das optionale Argument myobj nicht übergeben wird, muss myobj bleiben NULL oder ist sie auf Py_None ?

static PyObject * myfunc(PyObject * self, PyObject * args) {
    PyObject * myobj = NULL;
    if (!PyArg_ParseTuple(args, "|O", &myobj)) {
        return NULL;
    }
    // ...
}

Nach Analysieren von Argumenten und Erstellen von Werten ,

| Gibt an, dass die übrigen Argumente in der Python-Argumentliste optional sind. Die C-Variablen, die optionalen Argumenten entsprechen, sollten auf ihren Standardwert initialisiert werden - wenn ein optionales Argument nicht angegeben wird, berührt PyArg_ParseTuple() den Inhalt der entsprechenden C-Variable(n) nicht.

Gilt dies für PyObject * s? Es ist offensichtlich ein Zeiger, der in C existiert, also könnte man sagen, dass es eine C-Variable ist, aber es ist ein Zeiger auf ein Python-Objekt, also könnte man auch sagen, dass es nicht als C-Variable zählt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X