mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
bpo-4260: Document that ctypes.xFUNCTYPE are decorators (GH-7924)
This commit is contained in:
parent
d6345def68
commit
379e9d639a
1 changed files with 19 additions and 1 deletions
|
@ -1025,6 +1025,22 @@ As we can easily check, our array is sorted now::
|
|||
1 5 7 33 99
|
||||
>>>
|
||||
|
||||
The function factories can be used as decorator factories, so we may as well
|
||||
write::
|
||||
|
||||
>>> @CFUNCTYPE(c_int, POINTER(c_int), POINTER(c_int))
|
||||
... def py_cmp_func(a, b):
|
||||
... print("py_cmp_func", a[0], b[0])
|
||||
... return a[0] - b[0]
|
||||
...
|
||||
>>> qsort(ia, len(ia), sizeof(c_int), py_cmp_func)
|
||||
py_cmp_func 5 1
|
||||
py_cmp_func 33 99
|
||||
py_cmp_func 7 33
|
||||
py_cmp_func 1 7
|
||||
py_cmp_func 5 7
|
||||
>>>
|
||||
|
||||
.. note::
|
||||
|
||||
Make sure you keep references to :func:`CFUNCTYPE` objects as long as they
|
||||
|
@ -1577,7 +1593,9 @@ Foreign functions can also be created by instantiating function prototypes.
|
|||
Function prototypes are similar to function prototypes in C; they describe a
|
||||
function (return type, argument types, calling convention) without defining an
|
||||
implementation. The factory functions must be called with the desired result
|
||||
type and the argument types of the function.
|
||||
type and the argument types of the function, and can be used as decorator
|
||||
factories, and as such, be applied to functions through the ``@wrapper`` syntax.
|
||||
See :ref:`ctypes-callback-functions` for examples.
|
||||
|
||||
|
||||
.. function:: CFUNCTYPE(restype, *argtypes, use_errno=False, use_last_error=False)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue