module.md
1> **Источник:** https://python-all.ru/2.6/c-api/module.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты модулей89Есть лишь несколько функций, специфичных для объектов модуля.1011**[PyTypeObject](https://python-all.ru/2.6/c-api/type.html#PyTypeObject) `PyModule_Type`**1213Этот экземпляр [`PyTypeObject`](https://python-all.ru/2.6/c-api/type.html#PyTypeObject) представляет тип модуля Python. Он доступен программам на Python как `types.ModuleType`.1415**int `PyModule_Check`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*p*)**1617Возвращает истину, если *p* является объектом модуля или подтипом объекта модуля.1819Изменено в версии 2.2: Теперь допускаются подтипы.2021**int `PyModule_CheckExact`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*p*)**2223Возвращает true, если *p* является объектом модуля, но не подтипом [`PyModule_Type`](https://python-all.ru/2.6/c-api/module.html#PyModule_Type).2425Новое в версии 2.2.2627**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyModule_New`(const char *\*name*)**2829*Возвращаемое значение: новая ссылка.*3031Возвращает новый объект модуля с атрибутом `__name__`, установленным в *name*. Заполнены только атрибуты модуля `__doc__` и `__name__`; вызывающий отвечает за предоставление атрибута `__file__`.3233**[PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject)\* `PyModule_GetDict`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*module*)**3435*Возвращаемое значение: заимствованная ссылка.*3637Возвращает объект словаря, который реализует пространство имён *module*; этот объект совпадает с атрибутом `__dict__` объекта модуля. Эта функция никогда не завершается ошибкой. Расширениям рекомендуется использовать другие `PyModule_*()` и `PyObject_*()` функции, а не напрямую манипулировать `__dict__` модуля.3839**char\* `PyModule_GetName`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*module*)**4041Возвращает значение `__name__` для объекта *module*. Если модуль не предоставляет его или если это не строка, возбуждается [`SystemError`](https://python-all.ru/2.6/library/exceptions.html#exceptions.SystemError) и возвращается *NULL*.4243**char\* `PyModule_GetFilename`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*module*)**4445Возвращает имя файла, из которого был загружен *модуль*, используя *модуль*‘s `__file__` атрибут. Если этот атрибут не определён или не является строкой, возбуждает [`SystemError`](https://python-all.ru/2.6/library/exceptions.html#exceptions.SystemError) и возвращает *NULL*.4647**int `PyModule_AddObject`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*module*, const char *\*name*, [PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*value*)**4849Добавляет объект в *module* под именем *name*. Это удобная функция, которую можно использовать в функции инициализации модуля. Она похищает ссылку на *value*. Возвращает `-1` при ошибке, `0` при успехе.5051Новое в версии 2.0.5253**int `PyModule_AddIntConstant`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*module*, const char *\*name*, long *value*)**5455Добавляет целочисленную константу в модуль *module* под именем *name*. Эту удобную функцию можно использовать из функции инициализации модуля. Возвращает `-1` в случае ошибки, `0` при успешном выполнении.5657Новое в версии 2.0.5859**int `PyModule_AddStringConstant`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*module*, const char *\*name*, const char *\*value*)**6061Добавляет строковую константу в *module* под именем *name*. Эту вспомогательную функцию можно использовать в функции инициализации модуля. Строка *value* должна завершаться нулевым символом. Возвращает `-1` при ошибке, `0` при успехе.6263Новое в версии 2.0.6465**int `PyModule_AddIntMacro`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*module*, macro)**6667Добавляет целочисленную константу в *module*. Имя и значение берутся из *macro*. Например, `PyModule_AddConstant(module, AF_INET)` добавляет целочисленную константу *AF\_INET* со значением *AF\_INET* в *module*. Возвращает `-1` при ошибке, `0` при успехе.6869Новое в версии 2.6.7071**int `PyModule_AddStringMacro`([PyObject](https://python-all.ru/2.6/c-api/structures.html#PyObject) *\*module*, macro)**7273> Добавляет строковую константу в74>75> *module*76>77> .7879Новое в версии 2.6.80