Doc/c-api/bool.rst
.. highlight:: c
.. _boolobjects:
Booleans in Python are implemented as a subclass of integers. There are only
two booleans, :c:data:Py_False and :c:data:Py_True. As such, the normal
creation and deletion functions don't apply to booleans. The following macros
are available, however.
.. c:var:: PyTypeObject PyBool_Type
This instance of :c:type:PyTypeObject represents the Python boolean type; it
is the same object as :class:bool in the Python layer.
.. c:function:: int PyBool_Check(PyObject *o)
Return true if o is of type :c:data:PyBool_Type. This function always
succeeds.
.. c:var:: PyObject* Py_False
The Python False object. This object has no methods and is
:term:immortal.
.. versionchanged:: 3.12
:c:data:Py_False is :term:immortal.
.. c:var:: PyObject* Py_True
The Python True object. This object has no methods and is
:term:immortal.
.. versionchanged:: 3.12
:c:data:Py_True is :term:immortal.
.. c:macro:: Py_RETURN_FALSE
Return :c:data:Py_False from a function.
.. c:macro:: Py_RETURN_TRUE
Return :c:data:Py_True from a function.
.. c:function:: PyObject* PyBool_FromLong(long v)
Return :c:data:Py_True or :c:data:Py_False, depending on the truth value of v.