Документация Python неофициальный перевод

module.md

166 строк · 6.4 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.0/c-api/module.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты модулей89Есть лишь несколько функций, специфичных для объектов модуля.1011**\[PyModule\_Type\][PyTypeObject](https://python-all.ru/3.0/c-api/type.html#PyTypeObject) `PyModule_Type`**1213Этот экземпляр [`PyTypeObject`](https://python-all.ru/3.0/c-api/type.html#PyTypeObject) представляет тип модуля Python. Он доступен программам на Python как `types.ModuleType`.1415**\[PyModule\_Check\]int `PyModule_Check`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*p*)**1617Возвращает истину, если1819*p*2021является объектом модуля или подтипом объекта модуля.2223**\[PyModule\_CheckExact\]int `PyModule_CheckExact`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*p*)**2425Возвращает true, если2627*p*2829является объектом модуля, но не подтипом3031[`PyModule_Type`](https://python-all.ru/3.0/c-api/module.html#PyModule_Type)3233.3435**\[PyModule\_New\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyModule_New`(const char *\*name*)**3637*Возвращаемое значение: новая ссылка.*3839Возвращает новый объект модуля с атрибутом `__name__`, установленным в *name*. Заполнены только атрибуты модуля `__doc__` и `__name__`; вызывающий отвечает за предоставление атрибута `__file__`.4041**\[PyModule\_GetDict\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyModule_GetDict`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*module*)**4243*Возвращаемое значение: заимствованная ссылка.*4445Возвращает объект словаря, который реализует пространство имён *module*; этот объект совпадает с атрибутом `__dict__` объекта модуля. Эта функция никогда не завершается ошибкой. Расширениям рекомендуется использовать другие функции `PyModule_*` и `PyObject_*`, а не напрямую манипулировать `__dict__` модуля.4647**\[PyModule\_GetName\]char\* `PyModule_GetName`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*module*)**4849Возвращает значение `__name__` для объекта *module*. Если модуль не предоставляет его или если это не строка, возбуждается [`SystemError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.SystemError) и возвращается *NULL*.5051**\[PyModule\_GetFilename\]char\* `PyModule_GetFilename`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*module*)**5253Возвращает имя файла, из которого был загружен *модуль*, используя *модуль*‘s `__file__` атрибут. Если этот атрибут не определён или не является строкой, возбуждает [`SystemError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.SystemError) и возвращает *NULL*.5455**\[PyModule\_AddObject\]int `PyModule_AddObject`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*module*, const char *\*name*, [PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*value*)**5657Добавляет объект в5859*module*6061под именем6263*name*6465. Это удобная функция, которую можно использовать в функции инициализации модуля. Она похищает ссылку на6667*value*6869. Возвращает7071`-1`7273при ошибке,7475`0`7677при успехе.7879**\[PyModule\_AddIntConstant\]int `PyModule_AddIntConstant`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*module*, const char *\*name*, long *value*)**8081Добавляет целочисленную константу в модуль8283*module*8485под именем8687*name*8889. Эту удобную функцию можно использовать из функции инициализации модуля. Возвращает9091`-1`9293в случае ошибки,9495`0`9697при успешном выполнении.9899**\[PyModule\_AddStringConstant\]int `PyModule_AddStringConstant`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*module*, const char *\*name*, const char *\*value*)**100101Добавляет строковую константу в102103*module*104105под именем106107*name*108109. Эту вспомогательную функцию можно использовать в функции инициализации модуля. Строка110111*value*112113должна завершаться нулевым символом. Возвращает114115`-1`116117при ошибке,118119`0`120121при успехе.122123**\[PyModule\_AddIntMacro\]int `PyModule_AddIntMacro`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*module*, macro)**124125Добавляет целочисленную константу в126127*module*128129. Имя и значение берутся из130131*macro*132133. Например,134135`PyModule_AddConstant(module, AF_INET)`136137добавляет целочисленную константу138139*AF\_INET*140141со значением142143*AF\_INET*144145в146147*module*148149. Возвращает150151`-1`152153при ошибке,154155`0`156157при успехе.158159**\[PyModule\_AddStringMacro\]int `PyModule_AddStringMacro`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*module*, macro)**160161Добавляет строковую константу в162163*module*164165.166