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

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

警告

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

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

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

- 型オブジェクト
  - Creating Heap-Allocated Types
- `None` オブジェクト

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

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

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

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

- バイトオブジェクト
- 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)
- タプルオブジェクト (tuple object)
- Struct Sequence オブジェクト
- リストオブジェクト

## Container オブジェクト

- 辞書オブジェクト (dictionary object)
  - Dictionary View Objects
  - Ordered Dictionaries
- Set オブジェクト

## Function オブジェクト

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

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

- ファイルオブジェクト
- モジュールオブジェクト (module object)
  - Cモジュールの初期化
    - 一段階初期化
    - 多段階初期化
    - 低水準モジュール作成関数
    - サポート関数
  - モジュール検索
- イテレータオブジェクト (iterator object)
  - Range Objects
  - Builtin Iterator Types
  - Other Iterator Objects
- デスクリプタオブジェクト (descriptor object)
  - Built-in descriptors
- スライスオブジェクト (slice object)
  - Ellipsis オブジェクト
- memoryview オブジェクト
- Pickle buffer objects
- 弱参照オブジェクト
- カプセル
- フレーム (frame) オブジェクト
  - Frame Locals Proxies
  - Legacy Local Variable APIs
  - Internal Frames
- ジェネレータオブジェクト
  - Asynchronous Generator Objects
- コルーチンオブジェクト
- コンテキスト変数オブジェクト
- 型ヒントのためのオブジェクト

## C API for extension modules

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