scipy.

LowLevelCallable#

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

底層回呼函數。

SciPy 中的某些函數接受回呼函數作為參數,這些函數可以是 Python 可呼叫物件或底層編譯函數。使用編譯後的回呼函數可以稍微提高效能,因為可以避免將資料包裝在 Python 物件中。

SciPy 中的這類底層函數會被封裝在 LowLevelCallable 物件中,這些物件可以從 ctypes、cffi、Cython 取得的函數指標或 Python PyCapsule 物件中建構。

參數:
function{PyCapsule, ctypes 函數指標, cffi 函數指標}

底層回呼函數。

user_data{PyCapsule, ctypes void 指標, cffi void 指標}

要傳遞給回呼函數的使用者資料。

signature字串,選填

函數的簽名。如果省略,則盡可能從 function 判斷。

註解

參數 function 可以是下列之一

  • PyCapsule,其名稱包含 C 函數簽名

  • ctypes 函數指標

  • cffi 函數指標

底層回呼的簽名必須與傳遞給它的常式所預期的簽名之一相符。

如果從 PyCapsule 建構底層函數,則 capsule 的名稱必須是相應的簽名,格式如下

return_type (arg1_type, arg2_type, ...)

例如

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

如果沒有給定 user_data 的明確值,則作為 function 傳入的 PyCapsule 的上下文會被用作 user_data

屬性:
function

給定的回呼函數。

user_data

給定的使用者資料。

signature

函數的簽名。

方法

from_cython(模組, 名稱[, 使用者資料, 簽名])

從匯出的 Cython 函數建立底層回呼函數。