# 抽象物件層 (Abstract Objects Layer)

本章中的函式與 Python 物件相互作用，無論其型別、或具有廣泛類別的物件型別（例如所有數值型別或所有序列型別）。當使用於不適用的物件型別時，他們會引發一個 Python 異常 (exception)。

這些函式是不可能用於未正確初始化的物件（例如一個由 `PyList_New()` 建立的 list 物件），而其中的項目沒有被設為一些非 `NULL` 的值。

- 物件協定
- 呼叫協定 (Call Protocol)
  - tp_call 協定
  - Vectorcall 協定
    - 遞迴控制
    - Vectorcall 支援 API
  - 物件呼叫 API
  - 呼叫支援 API
- 數字協定
- 序列協定
- 對映協定
- 疊代器協定
- 緩衝協定 (Buffer Protocol)
  - 緩衝區結構
  - Buffer request types
    - request-independent fields
    - readonly, format
    - shape, strides, suboffsets
    - contiguity requests
    - compound requests
  - Complex arrays
    - NumPy 風格：形狀與步幅
    - PIL-style: shape, strides and suboffsets
  - 與緩衝相關的函式