# 具象オブジェクト (concrete object) レイヤ

この章では、特定の Python オブジェクト型固有の関数について述べています。これらの関数に間違った型のオブジェクトを渡すのは良い考えではありません; Python プログラムから何らかのオブジェクトを受け取ったとき、そのオブジェクトが正しい型になっているか確信をもてないのなら、まず型チェックを行わなければなりません; 例えば、あるオブジェクトが辞書型か調べるには、 `PyDict_Check()` を使います。この章は Python のオブジェクト型における "家計図" に従って構成されています。

警告

この章で述べている関数は、渡されたオブジェクトの型を注意深くチェックしはするものの、多くの関数は渡されたオブジェクトが有効な `NULL` なのか有効なオブジェクトなのかをチェックしません。これらの関数に `NULL` を渡させてしまうと、関数はメモリアクセス違反を起こして、インタプリタを即座に終了させてしまうはずです。

## 基本オブジェクト (fundamental object)

この節では、Python の型オブジェクトとシングルトン(singleton)オブジェクト `None` について述べます。

- 型オブジェクト
  - Creating Heap-Allocated Types
    - Type slot IDs
  - Soft-deprecated API
- `None` オブジェクト

## 数値型オブジェクト (numeric object)

- 整数型オブジェクト (integer object)
  - Export API
  - PyLongWriter API
  - Deprecated API
- Boolean オブジェクト
- Floating-Point Objects
  - Pack and Unpack functions
    - Pack functions
    - Unpack functions
- 複素数オブジェクト
  - C 構造体としての複素数

## シーケンスオブジェクト (sequence object)

シーケンスオブジェクトに対する一般的な操作については前の章ですでに述べました; この節では、Python 言語にもともと備わっている特定のシーケンスオブジェクトについて扱います。

- バイトオブジェクト
- PyBytesWriter
  - Create, Finish, Discard
  - 高レベルAPI
  - Getters
  - 低レベルAPI
- bytearray オブジェクト
  - 型チェックマクロ
  - ダイレクト API 関数
  - マクロ
- Unicode オブジェクトと codec
  - Unicode オブジェクト
    - Unicode 型
    - Unicode 文字プロパティ
    - Unicode 文字列の生成とアクセス
    - ロケールエンコーディング
    - ファイルシステムエンコーディング
    - wchar_t サポート
  - 組み込み codec (built-in codec)
    - 汎用 codec
    - UTF-8 Codecs
    - UTF-32 Codecs
    - UTF-16 Codecs
    - UTF-7 Codecs
    - Unicode-Escape Codecs
    - Raw-Unicode-Escape Codecs
    - Latin-1 Codecs
    - ASCII Codecs
    - Character Map Codecs
    - Windows 用の MBCS codec
  - メソッドおよびスロット関数 (slot function)
  - PyUnicodeWriter
  - Deprecated API
- タプルオブジェクト (tuple object)
- Struct Sequence オブジェクト
- リストオブジェクト

## Container オブジェクト

- Dictionary objects
  - 辞書ビューオブジェクト
  - Frozen dictionary objects
  - Ordered dictionaries
- Set オブジェクト
  - Deprecated API

## Function オブジェクト

- Function オブジェクト
- インスタンスメソッドオブジェクト(Instance Method Objects)
- メソッドオブジェクト
- セルオブジェクト (cell object)
- コードオブジェクト
- Code Object Flags
- Extra information

## その他のオブジェクト

- File objects
  - Soft-deprecated API
- モジュールオブジェクト (module object)
  - Module definition
    - Metadata slots
    - Feature slots
    - Creation and initialization slots
  - Module state
    - Slots for defining module state
    - Module token
  - Creating extension modules dynamically
  - Module definition struct
  - サポート関数
    - Module lookup (single-phase initialization)
- イテレータオブジェクト (iterator object)
  - Range Objects
  - Builtin Iterator Types
  - Other Iterator Objects
- デスクリプタオブジェクト (descriptor object)
  - Built-in descriptors
- スライスオブジェクト (slice object)
  - Ellipsis オブジェクト
- memoryview オブジェクト
- Pickle buffer objects
- 弱参照オブジェクト
- カプセル
- Sentinel objects
- フレーム (frame) オブジェクト
  - Frame locals proxies
  - Legacy local variable APIs
  - Internal frames
- ジェネレータオブジェクト
  - Asynchronous Generator Objects
  - Deprecated API
- コルーチンオブジェクト
- コンテキスト変数オブジェクト
- 型ヒントのためのオブジェクト

## C API for extension modules

- Curses C API
- Internal data
- DateTime オブジェクト
- Internal data