模組物件¶
-
PyTypeObject PyModule_Type¶
- 為 穩定 ABI 的一部分.
This instance of
PyTypeObjectrepresents the Python module type. This is exposed to Python programs astypes.ModuleType.
-
int PyModule_Check(PyObject *p)¶
Return true if p is a module object, or a subtype of a module object. This function always succeeds.
-
int PyModule_CheckExact(PyObject *p)¶
Return true if p is a module object, but not a subtype of
PyModule_Type. This function always succeeds.
-
PyObject *PyModule_NewObject(PyObject *name)¶
- 回傳值:新的參照。 為 穩定 ABI 的一部分 自 3.7 版本開始.
Return a new module object with
module.__name__set to name. The module's__name__,__doc__,__package__and__loader__attributes are filled in (all but__name__are set toNone). The caller is responsible for setting a__file__attribute.在失敗時回傳
NULL並設定例外。在 3.3 版被加入.
在 3.4 版的變更:
__package__和__loader__現在被設為None。
-
PyObject *PyModule_New(const char *name)¶
- 回傳值:新的參照。 為 穩定 ABI 的一部分.
類似於
PyModule_NewObject(),但名稱是以 UTF-8 編碼的字串,而非 Unicode 物件。
-
PyObject *PyModule_GetDict(PyObject *module)¶
- 回傳值:借用參照。 為 穩定 ABI 的一部分.
Return the dictionary object that implements module's namespace; this object is the same as the
__dict__attribute of the module object. If module is not a module object (or a subtype of a module object),SystemErroris raised andNULLis returned.It is recommended extensions use other
PyModule_*andPyObject_*functions rather than directly manipulate a module's__dict__.The returned reference is borrowed from the module; it is valid until the module is destroyed.
-
PyObject *PyModule_GetNameObject(PyObject *module)¶
- 回傳值:新的參照。 為 穩定 ABI 的一部分 自 3.7 版本開始.
Return module's
__name__value. If the module does not provide one, or if it is not a string,SystemErroris raised andNULLis returned.在 3.3 版被加入.
-
const char *PyModule_GetName(PyObject *module)¶
- 為 穩定 ABI 的一部分.
類似於
PyModule_GetNameObject(),但回傳以'utf-8'編碼的名稱。The returned buffer is only valid until the module is renamed or destroyed. Note that Python code may rename a module by setting its
__name__attribute.
-
void *PyModule_GetState(PyObject *module)¶
- 為 穩定 ABI 的一部分.
Return the "state" of the module, that is, a pointer to the block of memory allocated at module creation time, or
NULL. SeePyModuleDef.m_size.
-
PyModuleDef *PyModule_GetDef(PyObject *module)¶
- 為 穩定 ABI 的一部分.
Return a pointer to the
PyModuleDefstruct from which the module was created, orNULLif the module wasn't created from a definition.On error, return
NULLwith an exception set. UsePyErr_Occurred()to tell this case apart from a missingPyModuleDef.
-
PyObject *PyModule_GetFilenameObject(PyObject *module)¶
- 回傳值:新的參照。 為 穩定 ABI 的一部分.
Return the name of the file from which module was loaded using module's
__file__attribute. If this is not defined, or if it is not a string, raiseSystemErrorand returnNULL; otherwise return a reference to a Unicode object.在 3.2 版被加入.
-
const char *PyModule_GetFilename(PyObject *module)¶
- 為 穩定 ABI 的一部分.
類似於
PyModule_GetFilenameObject(),但回傳以 'utf-8' 編碼的檔案名稱。The returned buffer is only valid until the module's
__file__attribute is reassigned or the module is destroyed.在 3.2 版之後被棄用:
PyModule_GetFilename()raisesUnicodeEncodeErroron unencodable filenames, usePyModule_GetFilenameObject()instead.
模組定義¶
The functions in the previous section work on any module object, including modules imported from Python code.
Modules defined using the C API typically use a module definition,
PyModuleDef -- a statically allocated, constant “description" of
how a module should be created.
The definition is usually used to define an extension's “main” module object (see Defining extension modules for details). It is also used to create extension modules dynamically.
Unlike PyModule_New(), the definition allows management of
module state -- a piece of memory that is allocated and cleared together
with the module object.
Unlike the module's Python attributes, Python code cannot replace or delete
data stored in module state.
-
type PyModuleDef¶
- 為 穩定 ABI 的一部分 (包含所有成員).
The module definition struct, which holds all information needed to create a module object. This structure must be statically allocated (or be otherwise guaranteed to be valid while any modules created from it exist). Usually, there is only one variable of this type for each extension module.
- PyModuleDef_Base