Built-in Constants ================== A small number of constants live in the built-in namespace. They are: .. note:: :data:`None`, :data:`False`, :data:`True` and :data:`__debug__` cannot be reassigned (assignments to them raise :exc:`SyntaxError`), so they can be considered "true" constants. .. XXX False, True, None are keywords too .. data:: False The false value of the :class:`bool` type. Assignments to ``False`` are illegal and raise a :exc:`SyntaxError`. .. data:: True The true value of the :class:`bool` type. Assignments to ``True`` are illegal and raise a :exc:`SyntaxError`. .. data:: None The sole value of :attr:`types.NoneType`. ``None`` is 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 :exc:`SyntaxError`. .. data:: NotImplemented Special value which can be returned by the "rich comparison" special methods (:meth:`__eq__`, :meth:`__lt__`, and friends), to indicate that the comparison is not implemented with respect to the other type. .. data:: Ellipsis The same as ``...``. Special value used mostly in conjunction with extended slicing syntax for user-defined container data types, as in :: .. XXX Someone who understands extended slicing should fill in here. .. data:: __debug__ This constant is true if Python was not started with an :option:`-O` option. Assignments to :const:`__debug__` are illegal and raise a :exc:`SyntaxError`. See also the :keyword:`assert` statement.