# 內建常數

有一小部分的常數存在於內建命名空間中。他們是：

`False`

  在 `bool` 型別中的 false 值。對於 `False` 的賦值是不合法的，並且會拋出 `SyntaxError`。

`True`

  在 `bool` 型別中的 true 值。對於 `True` 的賦值是不合法的，並且會拋出 `SyntaxError`。

`None`

  型別 `NoneType` 的唯一值。`None` 經常被使用來表達缺少值，例如未傳送預設的引數至函式時，相對應參數即會被賦予 `None`。對於 `None` 的賦值是不合法的，並且會拋出 `SyntaxError`。`None` 是型別 `NoneType` 的唯一實例。

`NotImplemented`

  會被二元特殊方法 (binary special methods)（如：`__eq__()`、`__lt__()`、`__add__()`，`__rsub__()` 等）所回傳的特殊值，代表著該運算沒有針對其他型別的實作。同理也可以被原地二元特殊方法 (in-place binary special methods) （如：`__imul__()`、`__iand__()` 等）回傳。它不應該被作為 boolean（布林）來解讀。`NotImplemented` 是型別 `types.NotImplementedType` 的唯一實例。

  備註

  當一個二元 (binary) 或原地 (in-place) 方法回傳 `NotImplemented`，直譯器會嘗試反映該操作到其他型別（或是其他後援 (fallback)，取決於是哪種運算子）。如果所有的常識都回傳 `NotImplemented`，直譯器會拋出適當的例外。不正確的回傳 `NotImplemented` 會造成誤導的錯誤訊息或是 `NotImplemented` 值被傳回到 Python 程式碼中。

  請參見 实现算术运算 以找到更多範例。

  備註

  `NotImplementedError` 與 `NotImplemented` 並不一樣且不可互換。即使它們有相似的名稱與用途。欲知更多如何使用它們的細節，請參見 `NotImplementedError`。

  3.9 版更變: 在 boolean（布林）上下文中解讀 `NotImplemented` 已經被棄用。雖然目前會被解讀成 true，但會發出一個 `DeprecationWarning`。在未來版本的 Python 將會拋出 `TypeError`。

`Ellipsis`

  與刪節號 "`...`" 字面相同。為一特殊值，大多用於結合使用者定義資料型別的延伸切片語法 (extended slicing syntax)。`Ellipsis` 是型別 `types.EllipsisType` 的唯一實例。

`__debug__`

  如果 Python 沒有被以 `-O` 選項啟動，則此常數為 true。請參見 `assert` 陳述式。

備註

`None`，`False`，`True`，以及 `__debug__` 都是不能被重新賦值的（任何對它們的賦值，即使是屬性的名稱，也會拋出 `SyntaxError`）。因此，它們可以被視為”真正的”常數。

## 由 `site` module（模組）所添增的常數

`site` module（模組）（在啟動期間自動 import ，除非有給予 `-S` 指令行選項）會添增一些常數到內建命名空間 (built-in namespace) 中。它們在互動式直譯器中是很有幫助的，但不應該在程式 (programs) 中被使用。

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

  當印出物件時，會印出一個訊息： "Use quit() or Ctrl-D (i.e. EOF) to exit" 。當被呼叫時，則會拋出 `SystemExit` 並帶有指定的返回碼（exit code）。

`copyright`
`credits`

  當印出或是呼叫此物件時，分別會印出版權與致謝的文字。

`license`

  當印出此物件時，會印出訊息 "Type license() to see the full license text" 。當被呼叫時，則會以分頁形式印出完整的許可證文字（一次一整個畫面）。