抽象物件層 (Abstract Objects Layer)
***********************************

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

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

* Object Protocol

* 呼叫協定 (Call Protocol)

  * *tp_call* 協定

  * Vectorcall 協定

    * 遞迴控制

    * Vectorcall 支援 API

  * 物件呼叫 API

  * 呼叫支援 API

* Number Protocol

* Sequence Protocol

* Mapping Protocol

* 疊代器協議

* 緩衝協定 (Buffer Protocol)

  * Buffer structure

  * Buffer request types

    * request-independent fields

    * readonly, format

    * shape, strides, suboffsets

    * contiguity requests

    * compound requests

  * Complex arrays

    * NumPy-style: shape and strides

    * PIL-style: shape, strides and suboffsets

  * Buffer-related functions

* 舊式緩衝協定 (Buffer Protocol)
