Объекты модулей
-
PyTypeObject PyModule_Type -
Часть стабильного ABI.
Этот экземпляр
PyTypeObjectпредставляет тип модуля Python. В программах Python он представлен какtypes.ModuleType.
-
int PyModule_Check(PyObject *p) -
Возвращает true, если p является объектом модуля или его подтипом. Эта функция всегда завершается успешно.
-
int PyModule_CheckExact(PyObject *p) -
Возвращает true, если p является объектом модуля, но не подтипом
PyModule_Type. Эта функция всегда завершается успешно.
-
PyObject *PyModule_NewObject(PyObject *name) -
Возвращаемое значение: новая ссылка. Часть стабильного ABI начиная с версии 3.7.
Возвращает новый объект модуля, у которого
module.__name__установлено в name. Атрибуты__name__,__doc__,__package__и__loader__модуля заполняются (все, кроме__name__, устанавливаются вNone). Вызывающий код должен самостоятельно установить атрибут__file__.При ошибке возвращает
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.
Возвращает объект словаря, реализующий пространство имён module; этот объект совпадает с атрибутом
__dict__объекта модуля. Если module не является объектом модуля (или его подтипом), возникает исключениеSystemError, а функция возвращаетNULL.Расширениям рекомендуется использовать другие функции
PyModule_*иPyObject_*вместо непосредственного изменения__dict__модуля.Возвращённая ссылка является заимствованной у модуля; она действительна, пока модуль не уничтожен.
-
PyObject *PyModule_GetNameObject(PyObject *module) -
Возвращаемое значение: новая ссылка. Часть стабильного ABI начиная с версии 3.7.
Возвращает значение
__name__модуля module. Если у модуля нет такого атрибута или его значение не является строкой, возникает исключениеSystemError, а функция возвращаетNULL.Добавлено в версии 3.3.
-
const char *PyModule_GetName(PyObject *module) -
Часть стабильного ABI.
Аналогична
PyModule_GetNameObject(), но возвращает имя, закодированное в'utf-8'.Возвращённый буфер действителен только до переименования или уничтожения модуля. Обратите внимание, что код Python может переименовать модуль, установив его атрибут
__name__.
-
void *PyModule_GetState(PyObject *module) -
Часть стабильного ABI.
Возвращает «состояние» модуля, то есть указатель на блок памяти, выделенный при создании модуля, либо
NULL. См.PyModuleDef.m_size.
-
PyModuleDef *PyModule_GetDef(PyObject *module) -
Часть стабильного ABI.
Возвращает указатель на структуру
PyModuleDef, из которой был создан модуль, либоNULL, если модуль был создан не из определения.При ошибке возвращает
NULLс установленным исключением. ИспользуйтеPyErr_Occurred(), чтобы отличить этот случай от отсутствующегоPyModuleDef.
-
PyObject *PyModule_GetFilenameObject(PyObject *module) -
Возвращаемое значение: новая ссылка. Часть стабильного ABI.
Возвращает имя файла, из которого был загружен module, используя атрибут
__file__модуля module. Если этот атрибут не определён или его значение не является строкой, возникает исключениеSystemErrorи возвращаетсяNULL; в противном случае возвращается ссылка на объект Unicode.Добавлено в версии 3.2.
-
const char *PyModule_GetFilename(PyObject *module) -
Часть стабильного ABI.
Аналогична
PyModule_GetFilenameObject(), но возвращает имя файла в кодировке ‘utf-8’.Возвращённый буфер действителен только до изменения атрибута
__file__модуля или уничтожения модуля.Устарела с версии 3.2:
PyModule_GetFilename()вызывает исключениеUnicodeEncodeErrorдля имён файлов, которые нельзя закодировать; вместо неё используйтеPyModule_GetFilenameObject().
© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/c-api/module.html