mirror of
https://github.com/python/cpython.git
synced 2025-11-24 20:30:18 +00:00
[3.14] gh-141004: Document PyType_FastSubclass (GH-141313) (GH-141368)
gh-141004: Document `PyType_FastSubclass` (GH-141313)
(cherry picked from commit ed0a5fd8ca)
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
This commit is contained in:
parent
9f42519431
commit
96820d872f
2 changed files with 14 additions and 2 deletions
|
|
@ -133,6 +133,18 @@ Type Objects
|
|||
Type features are denoted by single bit flags.
|
||||
|
||||
|
||||
.. c:function:: int PyType_FastSubclass(PyTypeObject *type, int flag)
|
||||
|
||||
Return non-zero if the type object *type* sets the subclass flag *flag*.
|
||||
Subclass flags are denoted by
|
||||
:c:macro:`Py_TPFLAGS_*_SUBCLASS <Py_TPFLAGS_LONG_SUBCLASS>`.
|
||||
This function is used by many ``_Check`` functions for common types.
|
||||
|
||||
.. seealso::
|
||||
:c:func:`PyObject_TypeCheck`, which is used as a slower alternative in
|
||||
``_Check`` functions for types that don't come with subclass flags.
|
||||
|
||||
|
||||
.. c:function:: int PyType_IS_GC(PyTypeObject *o)
|
||||
|
||||
Return true if the type object includes support for the cycle detector; this
|
||||
|
|
|
|||
|
|
@ -1336,8 +1336,8 @@ and :c:data:`PyType_Type` effectively act as defaults.)
|
|||
.. c:macro:: Py_TPFLAGS_BASE_EXC_SUBCLASS
|
||||
.. c:macro:: Py_TPFLAGS_TYPE_SUBCLASS
|
||||
|
||||
These flags are used by functions such as
|
||||
:c:func:`PyLong_Check` to quickly determine if a type is a subclass
|
||||
Functions such as :c:func:`PyLong_Check` will call :c:func:`PyType_FastSubclass`
|
||||
with one of these flags to quickly determine if a type is a subclass
|
||||
of a built-in type; such specific checks are faster than a generic
|
||||
check, like :c:func:`PyObject_IsInstance`. Custom types that inherit
|
||||
from built-ins should have their :c:member:`~PyTypeObject.tp_flags`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue