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

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

PyTypeObject `PyModule_Type`

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

int `PyModule_Check`(PyObject *p)

  p がモジュールオブジェクトかモジュールオブジェクトのサブタイプであるときに真を返します。

  バージョン 2.2 で変更: サブタイプを引数にとれるようになりました.

int `PyModule_CheckExact`(PyObject *p)

  p がモジュールオブジェクトで、かつモジュールオブジェクトのサブタイプでないときに真を返します。 `PyModule_Type`.

  バージョン 2.2 で追加.

PyObject* `PyModule_New`(const char *name)
  Return value: New reference.

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

PyObject* `PyModule_GetDict`(PyObject *module)
  Return value: Borrowed reference.

  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, const char *name, PyObject *value)

  module にオブジェクトを name として追加します。この関数はモジュールの初期化関数から利用される便宜関数です。これは value への参照を盗みます。エラーのときには `-1` を、成功したときには `0` を返します。

  バージョン 2.0 で追加.

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

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

  バージョン 2.0 で追加.

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

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

  バージョン 2.0 で追加.

int `PyModule_AddIntMacro`(PyObject *module, macro)

  module に int 定数を追加します。名前と値は macro から取得されます。例えば、`PyModule_AddIntMacro(module, AF_INET)` とすると、AF_INET という名前の int 型定数を AF_INET の値で module に追加します。エラー時には `-1` を、成功時には `0` を返します。

  バージョン 2.6 で追加.

int `PyModule_AddStringMacro`(PyObject *module, macro)

  > 文字列定数を module に追加します。

  バージョン 2.6 で追加.