Встроенные константы

Во встроенном пространстве имён находится небольшое количество констант. Вот они:

False

Ложное значение типа bool. Присваивание False недопустимо и возбуждает исключение SyntaxError.

True

Истинное значение типа bool. Присваивание True недопустимо и возбуждает исключение SyntaxError.

None

Объект, часто используемый для обозначения отсутствия значения, например когда в функцию не переданы аргументы, имеющие значения по умолчанию. Присваивание None недопустимо и возбуждает исключение SyntaxError. None — единственный экземпляр типа NoneType.

NotImplemented

Особое значение, которое должны возвращать бинарные специальные методы (например, __eq__(), __lt__(), __add__(), __rsub__() и т. д.), чтобы показать, что операция не реализована по отношению к другому типу. Его также могут возвращать бинарные специальные методы для операций на месте (например, __imul__(), __iand__() и т. д.) с той же целью. Его не следует вычислять в логическом контексте. NotImplemented — единственный экземпляр типа types.NotImplementedType.

Примечание

Когда бинарный метод (или метод для операции на месте) возвращает NotImplemented, интерпретатор пробует выполнить отражённую операцию над другим типом (или другой запасной вариант, в зависимости от оператора). Если все попытки возвращают NotImplemented, интерпретатор возбуждает соответствующее исключение. Неправильный возврат NotImplemented приведёт к вводящему в заблуждение сообщению об ошибке или к тому, что значение NotImplemented будет возвращено в код Python.

Примеры см. в Implementing the arithmetic operations.

Осторожно

NotImplemented и NotImplementedError не взаимозаменяемы. Эту константу следует использовать только так, как описано выше. Подробности о правильном использовании исключения см. в NotImplementedError.

Изменено в версии 3.9: Вычисление NotImplemented в логическом контексте объявлено устаревшим.

Изменено в версии 3.14: Вычисление NotImplemented в логическом контексте теперь возбуждает исключение TypeError. Раньше оно вычислялось в True и, начиная с Python 3.9, выдавало DeprecationWarning.

Ellipsis

То же, что и литерал многоточия «...» — объект, часто используемый для обозначения пропуска чего-либо. Присваивание Ellipsis возможно, но присваивание ... возбуждает исключение SyntaxError. Ellipsis — единственный экземпляр типа types.EllipsisType.

__debug__

Эта константа истинна, если Python не был запущен с параметром -O. См. также инструкцию assert.

Примечание

Имена None, False, True и __debug__ нельзя присвоить заново (присваивание им, даже в качестве имени атрибута, возбуждает SyntaxError), поэтому их можно считать «настоящими» константами.

Константы, добавляемые модулем site

Модуль site (который импортируется автоматически при запуске, кроме случая, когда указан параметр командной строки -S) добавляет несколько констант во встроенное пространство имён. Они полезны для интерактивной оболочки интерпретатора и не должны использоваться в программах.

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

Объекты, которые при выводе на печать выводят сообщение вида «Use quit() or Ctrl-D (i.e. EOF) to exit», а при прямом обращении к ним в интерактивном интерпретаторе или при вызове как функций возбуждают исключение SystemExit с указанным кодом завершения.

help

Объект, который при выводе на печать выводит сообщение «Type help() for interactive help, or help(object) for help about object.», а при прямом обращении к нему в интерактивном интерпретаторе вызывает встроенную справочную систему (см. help()).

credits

Объекты, которые при выводе на печать или при вызове выводят текст об авторских правах или благодарностях соответственно.

license

Объект, который при выводе на печать выводит сообщение «Type license() to see the full license text», а при вызове показывает полный текст лицензии в режиме постраничного просмотра (по одному экрану за раз).