mirror of https://github.com/python/cpython
gh-102468: Document `PyCFunction_New*` and `PyCMethod_New` (GH-112557)
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
This commit is contained in:
parent
c361a1f395
commit
a482bc67ee
|
@ -399,6 +399,40 @@ definition with the same method name.
|
|||
slot. This is helpful because calls to PyCFunctions are optimized more
|
||||
than wrapper object calls.
|
||||
|
||||
.. c:function:: PyObject * PyCMethod_New(PyMethodDef *ml, PyObject *self, PyObject *module, PyTypeObject *cls)
|
||||
|
||||
Turn *ml* into a Python :term:`callable` object.
|
||||
The caller must ensure that *ml* outlives the :term:`callable`.
|
||||
Typically, *ml* is defined as a static variable.
|
||||
|
||||
The *self* parameter will be passed as the *self* argument
|
||||
to the C function in ``ml->ml_meth`` when invoked.
|
||||
*self* can be ``NULL``.
|
||||
|
||||
The :term:`callable` object's ``__module__`` attribute
|
||||
can be set from the given *module* argument.
|
||||
*module* should be a Python string,
|
||||
which will be used as name of the module the function is defined in.
|
||||
If unavailable, it can be set to :const:`None` or ``NULL``.
|
||||
|
||||
.. seealso:: :attr:`function.__module__`
|
||||
|
||||
The *cls* parameter will be passed as the *defining_class*
|
||||
argument to the C function.
|
||||
Must be set if :c:macro:`METH_METHOD` is set on ``ml->ml_flags``.
|
||||
|
||||
.. versionadded:: 3.9
|
||||
|
||||
|
||||
.. c:function:: PyObject * PyCFunction_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module)
|
||||
|
||||
Equivalent to ``PyCMethod_New(ml, self, module, NULL)``.
|
||||
|
||||
|
||||
.. c:function:: PyObject * PyCFunction_New(PyMethodDef *ml, PyObject *self)
|
||||
|
||||
Equivalent to ``PyCMethod_New(ml, self, NULL, NULL)``.
|
||||
|
||||
|
||||
Accessing attributes of extension types
|
||||
---------------------------------------
|
||||
|
|
|
@ -402,6 +402,21 @@ PyContextVar_Reset:int:::
|
|||
PyContextVar_Reset:PyObject*:var:0:
|
||||
PyContextVar_Reset:PyObject*:token:-1:
|
||||
|
||||
PyCFunction_New:PyObject*::+1:
|
||||
PyCFunction_New:PyMethodDef*:ml::
|
||||
PyCFunction_New:PyObject*:self:+1:
|
||||
|
||||
PyCFunction_NewEx:PyObject*::+1:
|
||||
PyCFunction_NewEx:PyMethodDef*:ml::
|
||||
PyCFunction_NewEx:PyObject*:self:+1:
|
||||
PyCFunction_NewEx:PyObject*:module:+1:
|
||||
|
||||
PyCMethod_New:PyObject*::+1:
|
||||
PyCMethod_New:PyMethodDef*:ml::
|
||||
PyCMethod_New:PyObject*:self:+1:
|
||||
PyCMethod_New:PyObject*:module:+1:
|
||||
PyCMethod_New:PyObject*:cls:+1:
|
||||
|
||||
PyDate_Check:int:::
|
||||
PyDate_Check:PyObject*:ob:0:
|
||||
|
||||
|
|
Loading…
Reference in New Issue