scipy.
LowLevelCallable#
- class scipy.LowLevelCallable(function, user_data=None, signature=None)[source]#
底層回呼函數。
SciPy 中的某些函數接受回呼函數作為參數,這些函數可以是 Python 可呼叫物件或底層編譯函數。使用編譯後的回呼函數可以稍微提高效能,因為可以避免將資料包裝在 Python 物件中。
SciPy 中的這類底層函數會被封裝在
LowLevelCallable
物件中,這些物件可以從 ctypes、cffi、Cython 取得的函數指標或 Python PyCapsule 物件中建構。另請參閱
接受底層可呼叫物件的函數
scipy.integrate.quad
,scipy.ndimage.generic_filter
,scipy.ndimage.generic_filter1d
,scipy.ndimage.geometric_transform
使用範例
- 參數:
- 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 函數建立底層回呼函數。