オブジェクトをヒープ上にメモリ確保する
**************************************

PyObject *_PyObject_New(PyTypeObject *type)
    *戻り値: 新しい参照。*

PyVarObject *_PyObject_NewVar(PyTypeObject *type, Py_ssize_t size)
    *戻り値: 新しい参照。*

PyObject *PyObject_Init(PyObject *op, PyTypeObject *type)
    *戻り値: 借用参照。** 次に属します: Stable ABI.*

   新たにメモリ確保されたオブジェクト *op* に対し、型と初期状態での参
   照 (initial reference) を初期化します。初期化されたオブジェクトを返
   します。*type* からそのオブジェクトが循環参照ガベージ検出の機能を有
   する場合、検出機構が監視対象とするオブジェクトのセットに追加されま
   す。オブジェクトの他のフィールドには影響を及ぼしません。

PyVarObject *PyObject_InitVar(PyVarObject *op, PyTypeObject *type, Py_ssize_t size)
    *戻り値: 借用参照。** 次に属します: Stable ABI.*

   "PyObject_Init()" の全ての処理を行い、可変サイズオブジェクトの場合
   には長さ情報も初期化します。

PyObject_New(TYPE, typeobj)

   C の構造体型 *TYPE* と Python の型オブジェクト *typeobj* (
   "PyTypeObject*" ) を用いて Python オブジェクトの領域を新規確保しま
   す。Python のオブジェクトヘッダに定義されていないフィールドは初期化
   されません。呼び出し元がオブジェクトへの唯一の参照を持ちます（つま
   り、参照カウントは１になります）。メモリ割り当ての大きさは型オブジ
   ェクトの "tp_basicsize" フィールドによって定められます。

PyObject_NewVar(TYPE, typeobj, size)

   C の構造体型 *TYPE* と Python の型オブジェクト *typeobj* (
   "PyTypeObject*" ) を用いて Python オブジェクトの領域を新規確保しま
   す。Python のオブジェクトヘッダに定義されていないフィールドは初期化
   されません。確保されたメモリには、 *TYPE* 構造体に加え、 *typeobj*
   の "tp_itemsize" フィールドによって定められた大きさのフィールドを
   *size* ( "Py_ssize_t" ) 個分格納できます。これはタプルなどの、生成
   時に大きさを決定できるオブジェクトを実装する際に便利です。同じメモ
   リ割当にフィールドの配列も埋め込むことで、メモリ割当の回数を減らし
   、メモリ管理効率を上げることができます。

void PyObject_Del(void *op)

   "PyObject_New" または "PyObject_NewVar" によって、オブジェクトのた
   めに確保されたメモリを解放します。これは通常オブジェクトの型に指定
   されている "tp_dealloc" ハンドラから呼び出されます。これの呼び出し
   後のメモリは既に有効な Python オブジェクトではなくなっているため、
   オブジェクトのフィールドはアクセスされるべきではありません。

PyObject _Py_NoneStruct

   Python からは "None" に見えるオブジェクトです。この値へのアクセスは
   、このオブジェクトへのポインタを評価する "Py_None" マクロを使わなけ
   ればなりません。

参考:

  "PyModule_Create()"
     拡張モジュールのアロケートと生成。
