# 4. Built-in Constants

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

`False`

  The false value of the `bool` type.

  New in version 2.3.

`True`

  The true value of the `bool` type.

  New in version 2.3.

`None`

  The sole value of `types.NoneType`. `None` is frequently used to represent the absence of a value, as when default arguments are not passed to a function.

  Changed in version 2.4: Assignments to `None` are illegal and raise a `SyntaxError`.

`NotImplemented`

  Special value which can be returned by the “rich comparison” special methods (`__eq__()`, `__lt__()`, and friends), to indicate that the comparison is not implemented with respect to the other type.

`Ellipsis`

  Special value used in conjunction with extended slicing syntax.

`__debug__`

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

Note

The names `None` and `__debug__` cannot be reassigned (assignments to them, even as an attribute name, raise `SyntaxError`), so they can be considered “true” constants.

Changed in version 2.7: Assignments to `__debug__` as an attribute became illegal.

## 4.1. 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.

`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 called, raise `SystemExit` with the specified exit code.

`copyright`
`license`
`credits`

  Objects that when printed, print a message like “Type license() to see the full license text”, and when called, display the corresponding text in a pager-like fashion (one screen at a time).