模块对象 — Python 文档

来自菜鸟教程
Python/docs/2.7/c-api/module
跳转至:导航、​搜索

模块对象

只有少数函数是模块对象特有的。

PyTypeObject PyModule_Type
PyTypeObject 的这个实例表示 Python 模块类型。 这以 types.ModuleType 的形式暴露给 Python 程序。
int PyModule_Check(PyObject *p)

如果 p 是模块对象或模块对象的子类型,则返回 true。

在 2.2 版更改:允许接受子类型。

int PyModule_CheckExact(PyObject *p)

如果 p 是模块对象,但不是 PyModule_Type 的子类型,则返回 true。

2.2 版中的新功能。

PyObject *PyModule_New(const char *name)
返回一个新的模块对象,其中 __name__ 属性设置为 name。 只填写模块的__doc____name__属性; 调用者负责提供 __file__ 属性。
PyObject *PyModule_GetDict(PyObject *module)
返回实现module命名空间的字典对象; 此对象与模块对象的 __dict__ 属性相同。 这个功能永远不会失败。 建议扩展使用其他 PyModule_*()PyObject_*() 函数,而不是直接操作模块的 __dict__
char *PyModule_GetName(PyObject *module)
返回 模块__name__ 值。 如果模块不提供,或者它不是字符串,则引发 SystemError 并返回 NULL
char *PyModule_GetFilename(PyObject *module)
使用 module__file__ 属性返回从中加载 module 的文件的名称。 如果未定义,或者它不是字符串,则引发 SystemError 并返回 NULL
int PyModule_AddObject(PyObject *module, const char *name, PyObject *value)

添加一个对象到 module 作为 name。 这是一个方便的函数,可以从模块的初始化函数中使用。 这窃取了对 的引用。 出错时返回 -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 必须以空字符结尾。 出错时返回 -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 版中的新功能。