# Built-in Constants

A small number of constants live in the built-in namespace. They are:

<div class="data">

False

The false value of the `bool` type. Assignments to `False` are illegal and raise a `SyntaxError`.

</div>

<div class="data">

True

The true value of the `bool` type. Assignments to `True` are illegal and raise a `SyntaxError`.

</div>

<div class="data">

None

An object frequently used to represent the absence of a value, as when default arguments are not passed to a function. Assignments to `None` are illegal and raise a `SyntaxError`. `None` is the sole instance of the `~types.NoneType` type.

</div>

<div class="data">

NotImplemented

A special value which should be returned by the binary special methods (e.g. `~object.__eq__`, `~object.__lt__`, `~object.__add__`, `~object.__rsub__`, etc.) to indicate that the operation is not implemented with respect to the other type; may be returned by the in-place binary special methods (e.g. `~object.__imul__`, `~object.__iand__`, etc.) for the same purpose. It should not be evaluated in a boolean context. `!NotImplemented` is the sole instance of the `types.NotImplementedType` type.

> [!NOTE]
> When a binary (or in-place) method returns `!NotImplemented` the interpreter will try the reflected operation on the other type (or some other fallback, depending on the operator). If all attempts return `!NotImplemented`, the interpreter will raise an appropriate exception. Incorrectly returning `!NotImplemented` will result in a misleading error message or the `!NotImplemented` value being returned to Python code.
>
> See `implementing-the-arithmetic-operations` for examples.

> [!CAUTION]
> `!NotImplemented` and `!NotImplementedError` are not interchangeable. This constant should only be used as described above; see `NotImplementedError` for details on correct usage of the exception.

<div class="versionchanged">

3.9 Evaluating `!NotImplemented` in a boolean context was deprecated.

</div>

<div class="versionchanged">

3.14 Evaluating `!NotImplemented` in a boolean context now raises a `TypeError`. It previously evaluated to `True` and emitted a `DeprecationWarning` since Python 3.9.

</div>

</div>

<div class="index">

single: ...; ellipsis literal

</div>

<div class="data">

Ellipsis

The same as the ellipsis literal "`...`", an object frequently used to indicate that something is omitted. Assignment to `Ellipsis` is possible, but assignment to `...` raises a `SyntaxError`. `Ellipsis` is the sole instance of the `types.EllipsisType` type.

</div>

<div class="data">

\_\_debug\_\_

This constant is true if Python was not started with an `-O` option. See also the `assert` statement.

</div>

> [!NOTE]
> The names `None`, `False`, `True` and `__debug__` cannot be reassigned (assignments to them, even as an attribute name, raise `SyntaxError`), so they can be considered "true" constants.

## Constants added by the `site` module

The `site` module (which is imported automatically during startup, except if the `-S` command-line option is given) adds several constants to the built-in namespace. They are useful for the interactive interpreter shell and should not be used in programs.

<div class="data">

quit(code=None) exit(code=None)

Objects that when printed, print a message like "Use quit() or Ctrl-D (i.e. EOF) to exit", and when accessed directly in the interactive interpreter or called as functions, raise `SystemExit` with the specified exit code.

</div>

<div class="data" data-noindex="">

help

Object that when printed, prints the message "Type help() for interactive help, or help(object) for help about object.", and when accessed directly in the interactive interpreter, invokes the built-in help system (see `help`).

</div>

<div class="data">

copyright credits

Objects that when printed or called, print the text of copyright or credits, respectively.

</div>

<div class="data">

license

Object that when printed, prints the message "Type license() to see the full license text", and when called, displays the full license text in a pager-like fashion (one screen at a time).

</div>