Строки документации в расширениях C для Python?

#python #cpython #python-c-extension

#python #cpython #python-c-extension

Вопрос:

Возможно ли при создании расширения C для Python каким-либо образом писать комментарии, которые предоставляются пользователям расширения в виде строк документации?

Комментарии:

1. Возможно, вы уже знаете об этом, но если нет: возможно, вы захотите изучить Cython. Вы пишете код в стиле Python, добавляете некоторые объявления типов, и он переводится на C и компилируется.

Ответ №1:

Строки документации для типов могут быть включены в качестве tp_doc члена в PyTypeObject структуру, см. пример в документах.

Строки документации для функций могут быть включены в ml_doc поле таблицы методов модуля. Если вы хотите, чтобы ваши строки документации были «физически близки» к реальным функциям, вы могли бы включить строковые константы над определениями ваших функций, на которые вы ссылаетесь в таблице методов.

Строки документации для методов могут быть назначены doc полю в таблице-элементе типа.

Строки документации для модулей могут быть переданы в качестве параметра функциям Py_InitModule3() или Py_InitModule4() .


ОБНОВЛЕНИЕ: Python3 не поддерживается Py_InitModule3() , и метод был заменен на PyModule_Create() .