##
7.5.4 モジュールオブジェクト (module object)

モジュールオブジェクト固有の関数は数個しかありません。

PyTypeObject `PyModule_Type`
  この `PyTypeObject` のインスタンスは Python のモジュールオブジェクト 型を表現します。 このオブジェクトは、Python プログラムには `types.ModuleType` として公開されています。

int `PyModule_Check`( | PyObject *p)

  o がモジュールオブジェクトかモジュールオブジェクトのサブタイプで あるときに真を返します。 バージョン2.2 以降で変更された 仕様: サブタイプを引数にとれるようになりました

int `PyModule_CheckExact`( | PyObject *p)

  o がモジュールオブジェクトで、かつモジュールオブジェクトの サブタイプでないときに真を返します。 `PyModule_Type`. バージョン2.2 以降で新規追加された 仕様です。

PyObject* `PyModule_New`( | char *name)

  戻り値: 新たな参照.
  `__name__` 属性が name に設定された新たなモジュール オブジェクトを返します。モジュールの `__doc__` および `__name__` 属性だけに値が入っています; `__file__` 属性に値を入れるのは呼び出し側の責任です。

PyObject* `PyModule_GetDict`( | PyObject *module)

  戻り値: 借りた参照.
  module の名前空間を実現する辞書オブジェクトを返します; このオブジェクトはモジュールオブジェクトの `__dict__` と同じです。この関数が失敗することはありません。 拡張モジュールでは、この関数で得たモジュールの`__dict__` を直接いじるより、他の`PyModule_*()` および `PyObject_*()` 関数を使うよう勧めます。

char* `PyModule_GetName`( | PyObject *module)

  module の `__name__` の値を返します。 モジュールがこの属性を提供していない場合や文字列型でない場合、 `SystemError` を送出して `NULL` を返します。

char* `PyModule_GetFilename`( | PyObject *module)

  module をロードするために使ったファイルの名前を、module の `__file__` 属性から調べて返します。`__file__` が定義されていない場合や文字列型でない場合、 `SystemError` を送出して `NULL` を返します。

int `PyModule_AddObject`( | PyObject *module, char *name, PyObject *value)

  module にオブジェクトをname として追加します。 この関数はモジュールの初期化関数から利用される便宜関数です。 エラーのときには `-1` を、成功したときには `0` を 返します。 バージョン2.0 以降で新規追加された 仕様です。

int `PyModule_AddIntConstant`( | PyObject *module, char *name, long value)

  module に整数定数をname として追加します。 この便宜関数はモジュールの初期化関数から利用されています。 エラーのときには `-1` を、成功したときには `0` を 返します。 バージョン2.0 以降で新規追加された 仕様です。

int `PyModule_AddStringConstant`( | PyObject *module, char *name, char *value)

  module に文字列定数をname として追加します。 この便宜関数はモジュールの初期化関数から利用されています。 文字列 value は null 終端されていなければなりません。 エラーのときには `-1` を、成功したときには `0` を 返します。 バージョン2.0 以降で新規追加された 仕様です。