# Boolean Objects

Booleans in Python are implemented as a subclass of integers. There are only two booleans, `Py_False` and `Py_True`. As such, the normal creation and deletion functions don’t apply to booleans. The following macros are available, however.

PyTypeObject PyBool_Type
  Part of the Stable ABI.

  This instance of `PyTypeObject` represents the Python boolean type; it is the same object as `bool` in the Python layer.

int PyBool_Check(PyObject *o)

  Return true if o is of type `PyBool_Type`. This function always succeeds.

PyObject *Py_False

  The Python `False` object. This object has no methods. It needs to be treated just like any other object with respect to reference counts.

PyObject *Py_True

  The Python `True` object. This object has no methods. It needs to be treated just like any other object with respect to reference counts.

Py_RETURN_FALSE

  Return `Py_False` from a function, properly incrementing its reference count.

Py_RETURN_TRUE

  Return `Py_True` from a function, properly incrementing its reference count.

PyObject *PyBool_FromLong(long v)
  Return value: New reference. Part of the Stable ABI.

  Return a new reference to `Py_True` or `Py_False` depending on the truth value of v.