(module object)
-
PyTypeObject
PyModule_Type PyTypeObjectPython Pythontypes.ModuleType
-
int
PyModule_Check(PyObject *p) p
-
int
PyModule_CheckExact(PyObject *p)
-
PyObject*
PyModule_NewObject(PyObject *name) __name__name__name__,__doc__,__package__,__loader__(__name__None);__file__3.3 .
3.4 :
__package____loader__None
-
PyObject*
PyModule_New(const char *name) - Return value: New reference.
Similar to
PyModule_NewObject(), but the name is a UTF-8 encoded string instead of a Unicode object.
-
PyObject*
PyModule_GetDict(PyObject *module) - Return value: Borrowed reference.
module ;
__dict__module ()SystemErrorNULL__dict__PyModule_*()PyObject_*()
-
PyObject*
PyModule_GetNameObject(PyObject *module) module
__name__SystemErrorNULL3.3 .
-
char*
PyModule_GetName(PyObject *module) PyModule_GetNameObject()'utf-8'name
-
void*
PyModule_GetState(PyObject *module) "state"() NULL
PyModuleDef.m_size
-
PyModuleDef*
PyModule_GetDef(PyObject *module) PyModuleDefNULL
-
PyObject*
PyModule_GetFilenameObject(PyObject *module) module
__file__module UnicodeSystemErrorNULL Unicode3.2 .
-
char*
PyModule_GetFilename(PyObject *module) PyModule_GetFilenameObject()'utf-8'3.2 :
PyModule_GetFilename()UnicodeEncodeErrorPyModule_GetFilenameObject()
C
() (PyImport_AppendInittab() )
C C++ Python
-
PyModuleDef 1
-
PyMethodDef*
m_methods PyMethodDefNULL
-
PyModuleDef_Slot*
m_slots {0, NULL}m_slots NULL3.5 : 3.5 NULL :
-
inquiry
m_reload
-
inquiry
-
traverseproc
m_traverse A traversal function to call during GC traversal of the module object, or NULL if not needed. This function may be called before module state is allocated (
PyModule_GetState()may return NULL), and before thePy_mod_execfunction is executed.
-
inquiry
m_clear A clear function to call during GC clearing of the module object, or NULL if not needed. This function may be called before module state is allocated (
PyModule_GetState()may return NULL), and before thePy_mod_execfunction is executed.
-
freefunc
m_free A function to call during deallocation of the module object, or NULL if not needed. This function may be called before module state is allocated (
PyModule_GetState()may return NULL), and before thePy_mod_execfunction is executed.
-
PyMethodDef*
""21:
-
PyObject*
PyModule_Create(PyModuleDef *def) def
PyModule_Create2()module_api_versionPYTHON_API_VERSION
-
PyObject*
PyModule_Create2(PyModuleDef *def, int module_api_version) API module_api_version def
RuntimeWarning
1""
Python:
__new__() __init__()
:
sys.modules Python
:
( PyModule_GetState() ) ( __dict__ PyType_FromSpec() )
(PyInit_modulename) m_slots PyModuleDef
PyModuleDef :
-
PyObject*
PyModuleDef_Init(PyModuleDef *def) Python
PyObject*def NULL3.5 .
m_slots PyModuleDef_Slot :
m_slots ID 0
:
-
Py_mod_create value :
-
PyObject*
create_module(PyObject *spec, PyModuleDef *def)
PEP 451
ModuleSpecNULLPython
Py_mod_create1Py_mod_createPyModule_New()specPyModule_TypePyModuleDefNULLm_traverse,m_clear,m_freem_sizePy_mod_createPyModule_Type-
PyObject*
-
Py_mod_exec Python: :
-
int
exec_module(PyObject* module)
Py_mod_execm_slots-
int
PyModule_FromDefAndSpec PyModule_ExecDef
-
PyObject *
PyModule_FromDefAndSpec(PyModuleDef *def, PyObject *spec) module ModuleSpec spec
PyModule_FromDefAndSpec2()module_api_versionPYTHON_API_VERSION3.5 .
-
PyObject *
PyModule_FromDefAndSpec2(PyModuleDef *def, PyObject *spec, int module_api_version) API module_api_version module ModuleSpec spec
RuntimeWarning3.5 .
-
int
PyModule_ExecDef(PyObject *module, PyModuleDef *def) def (
Py_mod_exec)3.5 .
-
int
PyModule_SetDocString(PyObject *module, const char *docstring) module docstring docstring
PyModuleDefPyModule_CreatePyModule_FromDefAndSpec3.5 .
-
int
PyModule_AddFunctions(PyObject *module, PyMethodDef *functions) NULL functions module
PyMethodDefPyMethodDef ( C "" 1 Python )PyModuleDefPyModule_CreatePyModule_FromDefAndSpec3.5 .
() () state :
-
int
PyModule_AddIntConstant(PyObject *module, const char *name, long value) module name
-10
-
int
PyModule_AddStringConstant(PyObject *module, const char *name, const char *value) module name value NULL
-10
-
int
PyModule_AddIntMacro(PyObject *module, macro) module int macro
PyModule_AddIntMacro(module, AF_INET)AF_INET int AF_INET module-10
-
int
PyModule_AddStringMacro(PyObject *module, macro) module
-
PyObject*
PyState_FindModule(PyModuleDef *def) def
PyState_AddModule()state state NULL
-
int
PyState_AddModule(PyObject *module, PyModuleDef *def) state
PyState_FindModule()3.3 .
-
int
PyState_RemoveModule(PyModuleDef *def) def state
3.3 .