scipy.

LowLevelCallable#

class scipy.LowLevelCallable(function, user_data=None, signature=None)[Quelle]#

Callback-Funktion auf niedriger Ebene.

Einige Funktionen in SciPy nehmen Callback-Funktionen als Argumente entgegen, die entweder Python-Aufrufbare oder kompilierte Low-Level-Funktionen sein können. Die Verwendung von kompilierten Callback-Funktionen kann die Leistung etwas verbessern, indem die Verpackung von Daten in Python-Objekte vermieden wird.

Solche Low-Level-Funktionen in SciPy werden in LowLevelCallable-Objekte verpackt, die aus Funktionszeigern, die von ctypes, cffi, Cython erhalten wurden, oder aus Python PyCapsule-Objekten erstellt werden können.

Parameter:
function{PyCapsule, ctypes Funktionszeiger, cffi Funktionszeiger}

Callback-Funktion auf niedriger Ebene.

user_data{PyCapsule, ctypes void Zeiger, cffi void Zeiger}

Benutzerdaten, die an die Callback-Funktion übergeben werden.

signaturestr, optional

Signatur der Funktion. Wenn weggelassen, wird sie wenn möglich aus function ermittelt.

Attribute:
function

Gegebene Callback-Funktion.

user_data

Gegebene Benutzerdaten.

signature

Signatur der Funktion.

Methoden

from_cython(module, name[, user_data, signature])

Erstellt eine Low-Level-Callback-Funktion aus einer exportierten Cython-Funktion.

Hinweise

Das Argument function kann eines der folgenden sein:

  • PyCapsule, deren Name die C-Funktionssignatur enthält

  • ctypes Funktionszeiger

  • cffi Funktionszeiger

Die Signatur des Low-Level-Callbacks muss mit einer der von der Routine erwarteten übereinstimmen, an die er übergeben wird.

Wenn Low-Level-Funktionen aus einer PyCapsule erstellt werden, muss der Name der Kapsel die entsprechende Signatur im Format sein

return_type (arg1_type, arg2_type, ...)

Zum Beispiel

"void (double)"
"double (double, int *, void *)"

Der Kontext einer PyCapsule, die als function übergeben wird, wird als user_data verwendet, wenn kein expliziter Wert für user_data angegeben wurde.