# 組み込み定数

組み込み名前空間にはいくつかの定数があります。定数の一覧:

`False`

  `bool` 型の偽値です。`False` への代入は不正で、`SyntaxError` を送出します。

`True`

  `bool` 型の真値です。`True` への代入は不正で、`SyntaxError` を送出します。

`None`

  関数にデフォルト引数が渡されなかったときなどに、値の非存在を表すのに頻繁に用いられるオブジェクトです。`None` への代入は不正で、`SyntaxError` を送出します。`None` が `NoneType` 型の唯一のインスタンスです。

`NotImplemented`

  特殊な二項演算のメソッド (e.g. `__eq__()`, `__lt__()`, `__add__()`, `__rsub__()`, etc.) が、他の型に対して演算が実装されていないことを示すために返す特殊値です。インプレースの特殊な二項演算のメソッド (e.g. `__imul__()`, `__iand__()`, etc.) も同じ理由でこの値を返すことがあります。この処理では真偽値コンテキストでの評価はしてはいけません。`NotImplemented` が `types.NotImplementedType` 型の唯一のインスタンスです。

  注釈

  二項演算の (あるいはインプレースの) メソッドが `NotImplemented` を返した場合、インタープリタはもう一方の型で定義された対の演算で代用を試みます (あるいは演算によっては他の代替手段も試みます)。試行された演算全てが `NotImplemented` を返した場合、インタープリタは適切な例外を送出します。 `NotImplemented` を正しく返さないと、誤解を招きかねないエラーメッセージになったり、 `NotImplemented` が Python コードに返されるようなことになります。

  例として 算術演算の実装 を参照してください。

  注釈

  `NotImplementedError` と `NotImplemented` は、似たような名前と目的を持っていますが、相互に変換できません。 利用する際には、 `NotImplementedError` を参照してください。

  バージョン 3.9 で変更: `NotImplemented` の評価は非推奨です。 現時点で真と評価されていても `DeprecationWarning` が出ます。 この警告は将来のバージョンの Python で `TypeError` を送出します。

`Ellipsis`

  Ellipsis リテラル "`...`" と同じです。 主に拡張スライス構文やユーザ定義のコンテナデータ型において使われる特殊な値です。`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` を送出するオブジェクトです。

`copyright`
`credits`

  表示あるいは呼び出されたときに、それぞれ著作権あるいはクレジットのテキストが表示されるオブジェクトです。

`license`

  表示されたときに "Type license() to see the full license text" というメッセージを表示し、呼び出されたときには完全なライセンスのテキストをページャのような形式で (1画面分づつ) 表示するオブジェクトです。