On this page
Module Objects
对于模块对象,只有少数几个特殊Function。
- PyTypeObject
PyModule_Type
- PyTypeObject的此实例表示 Python 模块类型。这对于
types.ModuleType
公开给 Python 程序。
- PyTypeObject的此实例表示 Python 模块类型。这对于
- int
PyModule_Check
(PyObject ** p *)- 如果* p *是模块对象或模块对象的子类型,则返回 true。
在版本 2.2 中更改:接受允许的子类型。
- int
PyModule_CheckExact
(PyObject ** p *)- 如果* p *是模块对象,但不是PyModule_Type的子类型,则返回 true。
2.2 版中的新Function。
- PyObject *
PyModule_New
(const char ** name *)- 返回值:新参考.
返回__name__
属性设置为* name *的新模块对象。仅填写模块的__doc__
和__name__
属性;调用方负责提供__file__
属性。
返回实现* module *的名称空间的字典对象;该对象与模块对象的dict属性相同。此Function永远不会失败。建议扩展使用其他PyModule_*()
和PyObject_*()
函数,而不是直接操作模块的dict。
- char *
PyModule_GetName
(PyObject ** module *)- 返回* module 的
__name__
值。如果模块不提供模块,或者模块不是字符串,则引发SystemError并返回 NULL *。
- 返回* module 的
- char *
PyModule_GetFilename
(PyObject ** module *)- 返回使用* module 的
__file__
属性从中加载 module 的文件的名称。如果未定义,或者它不是字符串,请加SystemError并返回 NULL *。
- 返回使用* module 的
- int
PyModule_AddObject
(PyObject *module ,const char name *,PyObject ** value *)- 将一个对象作为* name 添加到 module 。这是一个便捷Function,可以从模块的初始化Function中使用。这窃取了对 value *的引用。错误返回
-1
,成功返回0
。
- 将一个对象作为* name 添加到 module 。这是一个便捷Function,可以从模块的初始化Function中使用。这窃取了对 value *的引用。错误返回
2.0 版中的新Function。
- int
PyModule_AddIntConstant
(PyObject *module ,const char name *,long * value *)- 向* module 添加一个整数常量作为 name *。可以从模块的初始化Function中使用此便利Function。错误返回
-1
,成功返回0
。
- 向* module 添加一个整数常量作为 name *。可以从模块的初始化Function中使用此便利Function。错误返回
2.0 版中的新Function。
- int
PyModule_AddStringConstant
(PyObject *module ,const char name *,const char ** value *)- 将字符串常量作为* name 添加到 module 。可以从模块的初始化Function中使用此便利Function。字符串 value *必须以空值结尾。错误返回
-1
,成功返回0
。
- 将字符串常量作为* name 添加到 module 。可以从模块的初始化Function中使用此便利Function。字符串 value *必须以空值结尾。错误返回
2.0 版中的新Function。
- int
PyModule_AddIntMacro
(PyObject ** module *,宏)- 向* module 添加一个 int 常量。名称和值取自 macro 。例如
PyModule_AddIntMacro(module, AF_INET)
将 AF_INET 的 int 常量 AF_INET 添加到 module *。错误返回-1
,成功返回0
。
- 向* module 添加一个 int 常量。名称和值取自 macro 。例如
2.6 版的新Function。
int PyModule_AddStringMacro
(PyObject ** module *,宏)
Note
向* module *添加一个字符串常量。
2.6 版的新Function。