isinstance(the_parameter, ctypes.Array)
將檢查一個ctypes數組。
的ctypes定義了以下簡單的標量類型(注意,它們是私有的):
_SimpleCData # _type_: 'P' for void *
_Pointer # _type_: ctypes.c_int
_CFuncPtr # _flags_, _restype_, _argtypes_, _check_retval_
雖然您可以直接繼承這些類型的,在大多數情況下,你應該使用現有的子類和工廠功能,如c_void_p
,POINTER
和CFUNCTYPE
。
ctypes的定義了以下聚合類型:
Array # _type_, _length_
Structure # _fields_, _anonymous_, _pack_, _swappedbytes_
Union # _fields_, _anonymous_, _pack_, _swappedbytes_
Array
亞類通常通過使用操作者*
序列重複創建的,例如IntArray = c_int * 10
。您可以改爲使用以下內容:
class IntArray(ctypes.Array):
_type_ = ctypes.c_int
_length_ = 10
a = IntArray(*range(10))
a_list = a[:]