模块对象 — 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__
属性。
- 返回实现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 版中的新功能。