Spec-Zone.ru › Python 3.14

Объекты модулей

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API