モジュールオブジェクト (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 で追加.