# 抽象对象层

本章中的函数可与任意类型的 Python 对象交互，或适用于范围较广的对象类型（例如，所有数值类型，或所有序列类型）。当对不适用的对象类型使用这些函数时，将会引发 Python 异常。

这些函数不能用于未正确初始化的对象，例如由 `PyList_New()` 创建但其中的项目尚未被设置为非 `NULL` 值的列表对象。

- 对象协议
- 调用协议
  - tp_call 协议
  - Vectorcall 协议
    - 递归控制
    - Vectorcall 支持 API
  - 调用对象的 API
  - 调用支持 API
- 数字协议
- 序列协议
- 映射协议
- 迭代器协议
- 缓冲协议
  - 缓冲区结构
  - 缓冲区请求的类型
    - 与请求无关的字段
    - 只读，格式
    - 形状，步幅，子偏移量
    - 连续性的请求
    - 复合请求
  - 复杂数组
    - NumPy-风格：形状和步幅
    - PIL-风格：形状，步幅和子偏移量
  - 缓冲区相关函数